brintos

brintos / llvm-project-archived public Read only

0
0
Text · 887 B · 8eb3958 Raw
27 lines · c
1// RUN: %clang_cc1 %s -triple x86_64-pc-win32 -fms-extensions -emit-llvm -o - \2// RUN:         | FileCheck %s3// RUN: %clang_cc1 %s -triple i686-pc-win32 -fms-extensions -emit-llvm -o - \4// RUN:         | FileCheck %s5// RUN: %clang_cc1 %s -triple aarch64-windows -fms-extensions -emit-llvm -o - \6// RUN:         | FileCheck %s7 8// Check that the first finally block passes the enclosing function's frame9// pointer to the second finally block, instead of generating it via localaddr.10 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)13int14main(void) {15  int Check = 0;16  __try {17    Check = 3;18  } __finally {19    __try {20      Check += 2;21    } __finally {22      Check += 4;23    }24  }25  return Check;26}27