Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cdt-dev] Implicit Destructor Names (AST)

The destructors will be called as a result of returning from main and as a 
result of calling std::exit.
Markus.

> -----Original Message-----
> From: cdt-dev-bounces@xxxxxxxxxxx 
> [mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of Alena Laskavaia
> Sent: Tuesday, September 14, 2010 6:30 PM
> To: Doug Schaefer
> Cc: CDT General developers list.
> Subject: Re: [cdt-dev] Implicit Destructor Names (AST)
> 
> Contructors are, destructors are not called (or called atexit?)
> 
> On Tue, Sep 14, 2010 at 12:04 PM, Doug Schaefer 
> <cdtdoug@xxxxxxxxx> wrote:
> > I thought for globals they were called at the global 
> constructor time 
> > before main?
> >
> > On Tue, Sep 14, 2010 at 11:58 AM, Alena Laskavaia 
> > <elaskavaia.cdt@xxxxxxxxx> wrote:
> >> Disadvantage is it is good to know when destructor is 
> actually called 
> >> for static analysis.
> >> For globals it never actually called...
> >> Are we adding definition only or implicit call into the AST?
> >>
> >> On Tue, Sep 14, 2010 at 11:53 AM, Schorn, Markus 
> >> <Markus.Schorn@xxxxxxxxxxxxx> wrote:
> >>> My first thought was, that they should be attached to the 
> compound 
> >>> statement.
> >>> However, that does not work for global variables. Therefore, for 
> >>> simplicity I suggest to add them to the declarator. I don't see a 
> >>> disadvantage with this approach.
> >>>
> >>> Markus.
> >>>
> >>>> -----Original Message-----
> >>>> From: cdt-dev-bounces@xxxxxxxxxxx
> >>>> [mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of Lukas Felber
> >>>> Sent: Tuesday, September 14, 2010 11:29 AM
> >>>> To: CDT General developers list.
> >>>> Subject: [cdt-dev] Implicit Destructor Names (AST)
> >>>> Importance: Low
> >>>>
> >>>> Hi
> >>>>
> >>>> Since CDT 7.0 (I think), in code statements like 'X x;'
> >>>> (where X is a type containing a constructor declaration) the 
> >>>> declarator x contains an implicit name which refers to X's 
> >>>> constructor. This is a very useful and also necessary feature!
> >>>>
> >>>> However, when considering the following code {
> >>>>   X x;
> >>>> }
> >>>> one misses, beside the reference to the constructor of X, also a 
> >>>> reference to X's destructor, which, for completeness, 
> should also 
> >>>> be part of the AST.
> >>>>
> >>>> The question which arises here, is, where this name 
> should best be 
> >>>> contained.
> >>>>  - The simples, but also a bit incorrect option is to 
> put the name 
> >>>> into the declarator x. This is not really the place where the 
> >>>> destructor is called, but it is the origin which causes the 
> >>>> destructor to be called at the end of the enclosing compound 
> >>>> statement
> >>>>  - The more precise place to place the name is the end 
> of the end 
> >>>> of the enclosing compound statement (which would mean to let the 
> >>>> interface IASTCompoundStatement extend IASTImpliciteNameOwner).
> >>>>
> >>>> What is your opinion on this matter?
> >>>>
> >>>>
> >>>> Best regards
> >>>> Lukas Felber
> >>>>
> >>>> _______________________________________________
> >>>> cdt-dev mailing list
> >>>> cdt-dev@xxxxxxxxxxx
> >>>> https://dev.eclipse.org/mailman/listinfo/cdt-dev
> >>>>
> >>> _______________________________________________
> >>> cdt-dev mailing list
> >>> cdt-dev@xxxxxxxxxxx
> >>> https://dev.eclipse.org/mailman/listinfo/cdt-dev
> >>>
> >> _______________________________________________
> >> cdt-dev mailing list
> >> cdt-dev@xxxxxxxxxxx
> >> https://dev.eclipse.org/mailman/listinfo/cdt-dev
> >>
> >
> _______________________________________________
> cdt-dev mailing list
> cdt-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/cdt-dev
> 


Back to the top