This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: Output of gcc -fdump-tree-original
- From: Ian Lance Taylor <iant at google dot com>
- To: Job Noorman <jobnoorman at gmail dot com>
- Cc: gcc-help at gcc dot gnu dot org
- Date: Sun, 25 Apr 2010 21:46:45 -0700
- Subject: Re: Output of gcc -fdump-tree-original
- References: <201004251237.38361.jobnoorman@gmail.com>
Job Noorman <jobnoorman@gmail.com> writes:
> If I dump the code generated by GCC for a virtual destructor (with -fdump-
> tree-original), I get something like this:
>
> ;; Function virtual Foo::~Foo() (null)
> ;; enabled by -tree-original
>
> {
> <<cleanup_point <<< Unknown tree: expr_stmt
> (void) (((struct Foo *) this)->_vptr.Foo = &_ZTV3Foo + 8) >>>
>>>;
> }
> <D.20148>:;
> if ((bool) (__in_chrg & 1))
> {
> <<cleanup_point <<< Unknown tree: expr_stmt
> operator delete ((void *) this) >>>
>>>;
> }
>
> My question is: where is the code after "<D.20148>:;" located? It is outside
> of the destructor so when is this code executed?
All of that code is in the destructor. The format of this dump is
misleading if you are expecting C. There is no outer set of curly
braces.
Ian