[PATCH] D56463: [SEH] Pass the frame pointer from SEH finally to finally functions

2019-01-15 Thread Sanjin Sijaric via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rC351302: [SEH] Pass the frame pointer from SEH finally to finally functions (authored by ssijaric, committed by ). Repository: rC Clang CHANGES SINCE LAST ACTION https://reviews.llvm.org/D56463/new/

[PATCH] D56463: [SEH] Pass the frame pointer from SEH finally to finally functions

2019-01-14 Thread Reid Kleckner via Phabricator via cfe-commits
rnk accepted this revision. rnk added a comment. This revision is now accepted and ready to land. lgtm Thanks! I'm surprised we passed as much of the Microsoft exception tests as we did with this bug. Maybe it regressed. Repository: rC Clang CHANGES SINCE LAST ACTION https://reviews.llvm.

[PATCH] D56463: [SEH] Pass the frame pointer from SEH finally to finally functions

2019-01-11 Thread Sanjin Sijaric via Phabricator via cfe-commits
ssijaric updated this revision to Diff 181337. ssijaric added a comment. Address formatting comments. Repository: rC Clang CHANGES SINCE LAST ACTION https://reviews.llvm.org/D56463/new/ https://reviews.llvm.org/D56463 Files: lib/CodeGen/CGException.cpp test/CodeGen/exceptions-seh-nest

[PATCH] D56463: [SEH] Pass the frame pointer from SEH finally to finally functions

2019-01-11 Thread Mandeep Singh Grang via Phabricator via cfe-commits
mgrang added inline comments. Comment at: lib/CodeGen/CGException.cpp:1635 +else { + llvm::Value *LocalAddrFn = CGM.getIntrinsic(llvm::Intrinsic::localaddress); + FP = CGF.Builder.CreateCall(LocalAddrFn); 80 char limit. Repository: rC Clang CH

[PATCH] D56463: [SEH] Pass the frame pointer from SEH finally to finally functions

2019-01-09 Thread Eli Friedman via Phabricator via cfe-commits
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 {

[PATCH] D56463: [SEH] Pass the frame pointer from SEH finally to finally functions

2019-01-08 Thread Sanjin Sijaric via Phabricator via cfe-commits
ssijaric created this revision. ssijaric added reviewers: rnk, efriedma, mstorsjo, TomTan. The following test case, compiled with -OO -target=x86_64-windows-win32, returns an incorrect value. It returns 5, when it should return 9. The problem is that the frame pointer that the first finally bl