[Issue 14696] destructor for temporary called before statement is complete with ternary operator and alias this
    via Digitalmars-d-bugs 
    digitalmars-d-bugs at puremagic.com
       
    Tue Jun 16 13:19:58 PDT 2015
    
    
  
https://issues.dlang.org/show_bug.cgi?id=14696
Walter Bright <bugzilla at digitalmars.com> changed:
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |bugzilla at digitalmars.com
--- Comment #3 from Walter Bright <bugzilla at digitalmars.com> ---
A simpler demonstration:
import core.stdc.stdio;
struct S {
    this(int i) {
        c = 's';
        p = &c;
    }
    ~this() {
        printf("S.dtor\n");
        c = 'd';
    }
    char *p;
    char c = 's';
}
int main() {
    char t = 't';
    char *q = &t;
    int x = 1;
    char *p = x ? S(1).p : q;
    printf("*p = %c\n", *p);
    assert(*p == 's');
    return 0;
}
--
    
    
More information about the Digitalmars-d-bugs
mailing list