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)

And how do I suppose to know the order?

On Tue, Sep 14, 2010 at 12:51 PM, Schorn, Markus
<Markus.Schorn@xxxxxxxxxxxxx> wrote:
> The function references in the AST will not occur in the order they are
> actually executed. A simple example is 'C c= f();', where the function call
> is executed before the call to the constructor. The same holds basically for
> any overloaded binary operator.
> Therefore I don't see the requirement that the implicit names in the ast have
> to reflect the order of execution.
> Markus.
>
>
>> -----Original Message-----
>> From: laskava@xxxxxxxxx [mailto:laskava@xxxxxxxxx] On Behalf
>> Of Alena Laskavaia
>> Sent: Tuesday, September 14, 2010 6:42 PM
>> To: Schorn, Markus
>> Cc: CDT General developers list.
>> Subject: Re: [cdt-dev] Implicit Destructor Names (AST)
>>
>> Asides from that is intention to add just definition of the
>> destructor or the implicit call also?
>> Implicit call should be attached to the end of the block if
>> case we are building control flow, it should not be at the definition.
>>
>> On Tue, Sep 14, 2010 at 12:31 PM, Schorn, Markus
>> <Markus.Schorn@xxxxxxxxxxxxx> wrote:
>> > 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
>> >>
>> >
>>
> _______________________________________________
> cdt-dev mailing list
> cdt-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/cdt-dev
>


Back to the top