[clang] Implement lifetime analysis for lifetime_capture_by(X) (#115921)
[llvm-project.git] / clang / test / CodeGen / exceptions-seh-nested-finally.c
blob8eb39581d56800df1f6d5ffa973501d8db080beb
1 // RUN: %clang_cc1 %s -triple x86_64-pc-win32 -fms-extensions -emit-llvm -o - \
2 // RUN: | FileCheck %s
3 // RUN: %clang_cc1 %s -triple i686-pc-win32 -fms-extensions -emit-llvm -o - \
4 // RUN: | FileCheck %s
5 // RUN: %clang_cc1 %s -triple aarch64-windows -fms-extensions -emit-llvm -o - \
6 // RUN: | FileCheck %s
8 // Check that the first finally block passes the enclosing function's frame
9 // pointer to the second finally block, instead of generating it via localaddr.
11 // CHECK-LABEL: define internal void @"?fin$0@0@main@@"({{i8 noundef( zeroext)?}} %abnormal_termination, ptr noundef %frame_pointer)
12 // CHECK: call void @"?fin$1@0@main@@"({{i8 noundef( zeroext)?}} 0, ptr noundef %frame_pointer)
13 int
14 main(void) {
15 int Check = 0;
16 __try {
17 Check = 3;
18 } __finally {
19 __try {
20 Check += 2;
21 } __finally {
22 Check += 4;
25 return Check;