diff options
author | Reid Kleckner <reid@kleckner.net> | 2015-04-09 20:37:24 +0000 |
---|---|---|
committer | Reid Kleckner <reid@kleckner.net> | 2015-04-09 20:37:24 +0000 |
commit | 0dbecf2b7816353329f58c91157670cd3e1e7b77 (patch) | |
tree | 6ddd5da585e66e28a8f6726c7c02d09d47307269 /clang/lib/CodeGen/CodeGenFunction.cpp | |
parent | 589015b1e3d220a0a0060ec115541a66c0d25fc7 (diff) | |
download | llvm-0dbecf2b7816353329f58c91157670cd3e1e7b77.zip llvm-0dbecf2b7816353329f58c91157670cd3e1e7b77.tar.gz llvm-0dbecf2b7816353329f58c91157670cd3e1e7b77.tar.bz2 |
[SEH] Outline finally blocks using the new variable capture support
WinEHPrepare was going to have to pattern match the control flow merge
and split that the old lowering used, and that wasn't really feasible.
Now we can teach WinEHPrepare to pattern match this, which is much
simpler:
%fp = call i8* @llvm.frameaddress(i32 0)
call void @func(iN [01], i8* %fp)
This prototype happens to match the prototype used by the Win64 SEH
personality function, so this is really simple.
llvm-svn: 234532
Diffstat (limited to 'clang/lib/CodeGen/CodeGenFunction.cpp')
-rw-r--r-- | clang/lib/CodeGen/CodeGenFunction.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/CodeGenFunction.cpp b/clang/lib/CodeGen/CodeGenFunction.cpp index 8401d72..42c3a42 100644 --- a/clang/lib/CodeGen/CodeGenFunction.cpp +++ b/clang/lib/CodeGen/CodeGenFunction.cpp @@ -40,7 +40,7 @@ CodeGenFunction::CodeGenFunction(CodeGenModule &cgm, bool suppressNewContext) CurFn(nullptr), CapturedStmtInfo(nullptr), SanOpts(CGM.getLangOpts().Sanitize), IsSanitizerScope(false), CurFuncIsThunk(false), AutoreleaseResult(false), SawAsmBlock(false), - BlockInfo(nullptr), BlockPointer(nullptr), + IsOutlinedSEHHelper(false), BlockInfo(nullptr), BlockPointer(nullptr), LambdaThisCaptureField(nullptr), NormalCleanupDest(nullptr), NextCleanupDestIndex(1), FirstBlockInfo(nullptr), EHResumeBlock(nullptr), ExceptionSlot(nullptr), EHSelectorSlot(nullptr), |