r212425 - Add an AST node for __leave statements, hook it up.

Nico Weber thakis at chromium.org
Mon Jul 7 11:51:11 PDT 2014

On Sun, Jul 6, 2014 at 6:14 PM, Chandler Carruth <chandlerc at google.com>

> On Sun, Jul 6, 2014 at 6:00 PM, Nico Weber <thakis at chromium.org> wrote:
>> I didn't modify AddStmtExprs() in ASTWriter.cpp, since none of the SEH
>> nodes are in there (and e.g. STMT_CXX_TRY isn't either). Does anyone know
>> what this function is good for, and if it should be updated with STMTs that
>> are currently missing from there?
> It should be used as part of the AST serialization, specifically to build
> up the types of expressions which can be serialized... Not sure why we're
> missing so much from that, or why it is factored this way. Most of the
> statement seralization is nicely factored into ASTWriterStmt.cpp but for
> some reason this vestige remains. Maybe it is completely dead code now? We
> may just not need the meta-records it is streaming....

No tests fail if I comment out the call to WriteBlockInfoBlock. But the
commit message from r125086 gives a hint: With these abbrevs, the output of
`clang -cc1 -fms-extensions -emit-pch -o test.ast test.cc
&& llvm-bcanalyzer  test.ast` is nicer to read. So we should probably add
the missing entries, and a test that FileChecks llvm-bcanalyzer output.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20140707/ff4f5327/attachment.html>

More information about the cfe-commits mailing list