This patch adds automatic variable's dtors to the CFG. It uses LocalScope to<br>record the automatic variables in each scope. When building the CFG,<br>CleanupPoints are inserted at ReturnStmt, CompoundStmt and GotoStmt. <br>
<br>After the building process, dtors are inserted into the cleanup points.<br><br>To hook up the LocalScope when entering a CompoundStmt, now autoCreate a block.<br>This may potentially create redundant blocks. But I think it's easy to remove<br>
them.<br><br>Some code is tricky. It is so to guarantee the correct order the dtors are <br>inserted. I'm not sure they are the best approach.<br><br>Later we would add an option to control the CFG build option. Currently <br>
adding implicit dtors are disabled. If it is enabled, some c++ test cases would <br>fail.<br><br>Some test cases that this patch can handle are attached. They can be tested by changing <br><br>if (BuildOpts.AddImplicitDtors) {<br>
<br>to <br><br>if (true) {<br>