[Bug 70] dtor / destructor not called for (rvalue) struct used in opApply

gdc-bugzilla at gdcproject.org gdc-bugzilla at gdcproject.org
Sun Jul 14 00:51:07 PDT 2013


http://bugzilla.gdcproject.org/show_bug.cgi?id=70

--- Comment #7 from Johannes Pfau <johannespfau at gmail.com> 2013-07-14 07:51:07 UTC ---
> tree handler = tryfinally(compound(exp)[i+1..firstDtor], compound(exp)[firstDtor..j+1]);

Sorry, the pseudo-code is partially wrong. To be 100% correct we have to find
the matching dtor for all ctors, then add try/finally acordingly. E.g

a.ctor;
b.ctor;
doSomething();
b.dtor;
a.dtor;

should be
a.ctor;
try
{
  b.ctor;
  try
  {
     doSomething();
  }
  finally{b.dtor;}
}
finally {a.dtor;}

But I think dmd doesn't do this nesting which is probably the cause of
http://d.puremagic.com/issues/show_bug.cgi?id=9704

-- 
Configure bugmail: http://bugzilla.gdcproject.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.


More information about the D.gnu mailing list