efriedma added a comment. It's currently possible to write, in clang:
void f() { __try { } __except(({__try{}__finally{}; 3;})) { } } And the following currently crashes if you try to build it with clang: struct A { ~A(); }; int f(const A&); void g() { __try { } __except(f(A())) { } } But both of those should be rejected; it should be safe to assume it's impossible to have an __finally block inside a filter. I think this looks fine, but I'd prefer if Reid could take a quick look. ================ Comment at: lib/CodeGen/CGException.cpp:1632 + // If CFG.IsOutlinedSEHHelper is true, then we are within a finally block. + if (CGF.IsOutlinedSEHHelper) + FP = &CGF.CurFn->arg_begin()[1]; ---------------- Please use braces consistently. Repository: rC Clang CHANGES SINCE LAST ACTION https://reviews.llvm.org/D56463/new/ https://reviews.llvm.org/D56463 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits