[Issue 21586] New: Struct dtor is called twice if struct is created inside ternary operator
    d-bugmail at puremagic.com 
    d-bugmail at puremagic.com
       
    Tue Jan 26 22:27:45 UTC 2021
    
    
  
https://issues.dlang.org/show_bug.cgi?id=21586
          Issue ID: 21586
           Summary: Struct dtor is called twice if struct is created
                    inside ternary operator
           Product: D
           Version: D2
          Hardware: All
                OS: All
            Status: NEW
          Severity: critical
          Priority: P1
         Component: dmd
          Assignee: nobody at puremagic.com
          Reporter: temtaime at gmail.com
import std.stdio;
struct S
{
        this(int arg)
        {
                a = arg;
                writeln(`this`);
        }
    ~this()
    {
        writeln(`~this `, a);
    }
        int a;
}
void main()
{
        auto s = true ? S(1) : S(0);
}
Outputs:
this
~this 1
~this 1
Should:
this
~this 1
--
    
    
More information about the Digitalmars-d-bugs
mailing list