April 08, 2022 [Issue 22997] New: DMD crash: copy ctor can't call other ctor | ||||
|---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=22997 Issue ID: 22997 Summary: DMD crash: copy ctor can't call other ctor Product: D Version: D2 Hardware: x86_64 OS: Linux Status: NEW Severity: normal Priority: P1 Component: dmd Assignee: nobody@puremagic.com Reporter: submada@gmail.com Hello, this code crash dmd: ```d struct Forward{} struct Foo{ /// 1. this(scope ref typeof(this) rhs){ this(rhs, Forward.init); //call ctor 2. } /// 2. this(scope ref typeof(this) rhs, Forward){} /// 3. this(scope typeof(this) rhs, int i, double d, string s){} } void main(){ } ``` Existence of ctor 3 make dmd crash, there is some ctor overloading bug when ctor 1. call ctor 2. Ctor 3. must have first parameter rvalue value of type typeof(this) to trigger the dmd crash. -- | ||||
Copyright © 1999-2021 by the D Language Foundation
Permalink
Reply