[cfe-dev] CFG initializers and destructors patch

Marcin Świderski marcin.sfider at gmail.com
Thu Sep 2 15:29:45 PDT 2010


Hi

I'm sending a patch with implementation of C++
- initializers from constructor initialization list,
- implicit destructors for objects with automatic storage duration.

For destructors I've taken care of:
- block local scopes,
- if/switch/for/while/do local scopes (in case there's no block),
- if/switch/for/while condition variables,
- catch exception variable,
- temporaries bound to const reference.

Is there something that I've missed?

As it have been suggested I've created hierarchy of CFGElements. Currently
there're two unused types for implicit destructor calls in destructor. I've
did not revert ability of CFGElement to cast/dyn_cast to Stmt, because it
would lead to situation when cast<Stmt>(SomeCFGElement) would return null. I
did however add method for downcasting CFGElement object to object of its
implemntation class (returned by value, not pointer) with returning invalid
object on invalid cast.

I did not add CFGElement for destructors of temporary objects. After giving
it some thought I came to a conclusion that it shouldn't be covered by CFG,
because it clearly needs path-sensitiveness.

Cheers
Marcin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20100903/3f378af1/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: cfg-init-dtor.patch
Type: application/octet-stream
Size: 76050 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20100903/3f378af1/attachment.obj>


More information about the cfe-dev mailing list