<div dir="auto">I just realized that this doesn't do the right thing if the try body contains jumps out of the try. That's rare and the CFG is mostly used for warnings, but we should get that right anyhow I suppose. To fix this, I'd probably add a "ActiveFinally" member, and when building a node for a return, I'd make the return jump to that if it's active and then add an edge to the exit node (or a containing finally) to the ActiveFinally. When building jump nodes (continue, break, go-to) those would also go to the ActiveFinally which in turn would go to the right place.<div dir="auto"><br></div><div dir="auto">I don't think the code that's currently in this CL should change much so you can look at that if you want, but I'll upload a revision with the above mentioned changes eventually, so you can also wait for that.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Aug 23, 2017 9:35 PM, "Nico Weber via Phabricator via cfe-commits" <<a href="mailto:cfe-commits@lists.llvm.org">cfe-commits@lists.llvm.org</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">thakis created this revision.<br>
<br>
This completes CFG construction for SEH AST nodes.<br>
<br>
Also tweak test `g3` to explicitly check that `__leave` in an `__except` leaves the outer `__try`.<br>
<br>
<br>
<a href="https://reviews.llvm.org/D37090" rel="noreferrer" target="_blank">https://reviews.llvm.org/<wbr>D37090</a><br>
<br>
Files:<br>
  lib/Analysis/CFG.cpp<br>
  test/Sema/warn-unreachable-ms.<wbr>c<br>
<br>
<br>______________________________<wbr>_________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@lists.llvm.org">cfe-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/cfe-commits</a><br>
<br></blockquote></div></div>