[Issue 14147] Compiler crash on identical functions in a single module
https://issues.dlang.org/show_bug.cgi?id=14147 Issue 14147 depends on issue 2789, which changed state. Issue 2789 Summary: Functions overloads are not checked for conflicts https://issues.dlang.org/show_bug.cgi?id=2789 What|Removed |Added Status|REOPENED|RESOLVED Resolution|--- |FIXED --
[Issue 14147] Compiler crash on identical functions in a single module
https://issues.dlang.org/show_bug.cgi?id=14147 Basile-z changed: What|Removed |Added CC|b2.t...@gmx.com | --
[Issue 14147] Compiler crash on identical functions in a single module
https://issues.dlang.org/show_bug.cgi?id=14147 Basile-z changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |WORKSFORME --- Comment #8 from Basile-z --- no crash anymore --
[Issue 14147] Compiler crash on identical functions in a single module
https://issues.dlang.org/show_bug.cgi?id=14147 --- Comment #7 from Seb --- No, the PRs were reverted and the deprecation cycle is supposed to be started by https://github.com/dlang/dmd/pull/8429 which hasn't been merged yet. --
[Issue 14147] Compiler crash on identical functions in a single module
https://issues.dlang.org/show_bug.cgi?id=14147 Basile-z changed: What|Removed |Added CC||b2.t...@gmx.com --- Comment #6 from Basile-z --- Can this be closed now ? --
[Issue 14147] Compiler crash on identical functions in a single module
https://issues.dlang.org/show_bug.cgi?id=14147 Walter Bright changed: What|Removed |Added CC||bugzi...@digitalmars.com See Also||https://issues.dlang.org/sh ||ow_bug.cgi?id=15217 --
[Issue 14147] Compiler crash on identical functions in a single module
https://issues.dlang.org/show_bug.cgi?id=14147 Seb changed: What|Removed |Added CC||greensunn...@gmail.com --- Comment #5 from Seb --- This is still active due to regressions reported. See also https://github.com/dlang/dmd/pull/7969, https://github.com/dlang/dmd/pull/7577 --
[Issue 14147] Compiler crash on identical functions in a single module
https://issues.dlang.org/show_bug.cgi?id=14147 Issue 14147 depends on issue 2789, which changed state. Issue 2789 Summary: Functions overloads are not checked for conflicts https://issues.dlang.org/show_bug.cgi?id=2789 What|Removed |Added Status|RESOLVED|REOPENED Resolution|FIXED |--- --
[Issue 14147] Compiler crash on identical functions in a single module
https://issues.dlang.org/show_bug.cgi?id=14147 Issue 14147 depends on issue 2789, which changed state. Issue 2789 Summary: Functions overloads are not checked for conflicts https://issues.dlang.org/show_bug.cgi?id=2789 What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --
[Issue 14147] Compiler crash on identical functions in a single module
https://issues.dlang.org/show_bug.cgi?id=14147 --- Comment #4 from github-bugzi...@puremagic.com --- Commit pushed to master at https://github.com/dlang/dmd https://github.com/dlang/dmd/commit/ab47b8b0cf18d14c1ffbc97df6c8fb299971170a Issue 14147 - Compiler crash on identical functions in a single module (#7577) * fix Issue 2789 - Functions overloads are not checked for conflicts * Allow an overload declaration hack, which is actually used in druntime If two extern (C) functions are just declared with different signatures, they don't conflict. extern(C): alias sigfn_t = void function(int); alias sigfn_t2 = void function(int) nothrow @nogc; sigfn_t bsd_signal(int sig, sigfn_t func); sigfn_t2 bsd_signal(int sig, sigfn_t2 func) nothrow @nogc; // no error This behavior must be reconsidered in the future. * fix Issue 14147 - Compiler crash on identical functions in a single module * Allow an overload declaration hack, which is actually used in druntime * Fix the testsuite * PR 4396 Fixup * Remove duplicate definition in the DMD backend --
[Issue 14147] Compiler crash on identical functions in a single module
https://issues.dlang.org/show_bug.cgi?id=14147 Kenji Hara changed: What|Removed |Added Depends on||15217 --
[Issue 14147] Compiler crash on identical functions in a single module
https://issues.dlang.org/show_bug.cgi?id=14147 Kenji Hara changed: What|Removed |Added Depends on|2789| --
[Issue 14147] Compiler crash on identical functions in a single module
https://issues.dlang.org/show_bug.cgi?id=14147 Kenji Hara changed: What|Removed |Added Depends on||2789 --
[Issue 14147] Compiler crash on identical functions in a single module
https://issues.dlang.org/show_bug.cgi?id=14147 Kenji Hara changed: What|Removed |Added Keywords||ice, pull --- Comment #3 from Kenji Hara --- https://github.com/D-Programming-Language/dmd/pull/4396 --
[Issue 14147] Compiler crash on identical functions in a single module
https://issues.dlang.org/show_bug.cgi?id=14147 Kenji Hara changed: What|Removed |Added Hardware|x86_64 |All Depends on||2789 OS|Windows |All --
[Issue 14147] Compiler crash on identical functions in a single module
https://issues.dlang.org/show_bug.cgi?id=14147 --- Comment #2 from Kenji Hara --- Reduced test case: struct S(alias func) { void foo() { func(1); } } void main() { } pure auto mul(const int[] left, const int[] right) { S!(a => a)().foo(); } pure auto mul(const int[] left, const int[] right) { S!(a => a)().foo(); } In the two identical functions, the S!(a => a) will create different instances, but their mangled names are wrongly identical. Then It makes the internal compiler error (assertion failure). --
[Issue 14147] Compiler crash on identical functions in a single module
https://issues.dlang.org/show_bug.cgi?id=14147 Ketmar Dark changed: What|Removed |Added CC||ket...@ketmar.no-ip.org --- Comment #1 from Ketmar Dark --- seems that this assert() is right, and the code in `StructDeclaration::semantic()` is missing one check. here we have a check for the same condition: if (type->ty == Tstruct && ((TypeStruct *)type)->sym != this) { TemplateInstance *ti = ((TypeStruct *)type)->sym->isInstantiated(); if (ti && isError(ti)) ((TypeStruct *)type)->sym = this; } seems that second `if` is missing `else` part with `error()`. --