2010/11/3 Marcin Świderski <[email protected]> > 2010/11/3 Zhongxing Xu <[email protected]> > > >> >> On Wed, Nov 3, 2010 at 2:19 PM, Marcin Swiderski <[email protected] >> > wrote: >> >>> Author: sfider >>> Date: Wed Nov 3 01:19:35 2010 >>> New Revision: 118158 >>> >>> URL: http://llvm.org/viewvc/llvm-project?rev=118158&view=rev >>> Log: >>> Added generating destructors for temporary objects. Two cases I know of, >>> that are not handled properly: >>> 1. For statement: const C& c = C(0) ?: C(1) destructors generated for >>> condition will not differ from those generated for case without prolonged >>> lifetime of temporary, >>> 2. There will be no destructor for constant reference member bound to >>> temporary at the exit from constructor. >>> >>> >> Hi Marcin, >> >> Could you please provide two examples for these cases? >> > > Examples in attachment. > > In test_impl_cond() you can see that when assigning expression result to > regular variable both temporaries are destroyed and this is correct. But > when assiging to constant reference, temporary in condition should be > destroyed only when false branch is taken. > > In TestConstRefMember constructor temporary is created and should be > destroyed at the exit from constructor (after "int b"). >
Thanks. Now I see the problem. Overall this is great work, Marcin!
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
