Bug 21018 – Assert fails glue.d(1560) using -allinst due to an error making it into codegen
Status
RESOLVED
Resolution
WORKSFORME
Severity
critical
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2020-07-06T08:53:10Z
Last change time
2023-04-05T11:12:52Z
Keywords
ice, pull
Assigned to
No Owner
Creator
Stefan Koch
Comments
Comment #0 by uplink.coder — 2020-07-06T08:53:10Z
compile the following code with allinst.
template Tuple(Specs)
{
struct Tuple
{
this()
{
}
ref opAssign(R)(R )
if (isTuple!R)
{
}
}
}
enum isTuple(T) = __traits(compiles,
{
void f(Specs)(Specs ) {}
f(T.init);
} );
pragma(msg, is(Tuple!int));
Reduced version of: https://issues.dlang.org/show_bug.cgi?id=21017
Comment #1 by b2.temp — 2020-07-06T08:55:00Z
thanks, uplink, maybe reset 2107 to a "phobos" now, as I've changed this field.
Comment #2 by b2.temp — 2020-07-06T08:56:16Z
NVM done the change. Thanks again, it's important to keep issues coherant.
Comment #3 by dlang-bot — 2020-07-06T09:19:23Z
@UplinkCoder created dlang/dmd pull request #11379 "Fix 21018 - Don't emit speculative instances even if -allinst is given" fixing this issue:
- Fix 21018 - Don't emit speculative instances even if -allinst is given
https://github.com/dlang/dmd/pull/11379
Comment #4 by razvan.nitu1305 — 2023-04-05T11:11:40Z
*** Issue 21017 has been marked as a duplicate of this issue. ***
Comment #5 by razvan.nitu1305 — 2023-04-05T11:12:52Z
I cannot reproduce this. This seems to have been fixed.