brintos

brintos / llvm-project-archived public Read only

0
0
Text · 911 B · fa926c2 Raw
36 lines · c
1// RUN: %clang_cc1 -triple x86_64-windows -fms-extensions -Wno-implicit-function-declaration -emit-llvm %s -o - | FileCheck %s2 3// CHECK: %[[dst:[0-9-]+]] = call ptr @llvm.eh.recoverfp(ptr @"?fin$0@0@main@@", ptr %frame_pointer)4// CHECK-NEXT: %[[dst1:[0-9-]+]] = call ptr @llvm.localrecover(ptr @"?fin$0@0@main@@", ptr %[[dst]], i32 0)5// CHECK-NEXT: = load ptr, ptr %[[dst1]], align 86 7int8main(int argc, char *argv[])9{10    int Counter = 0;11    //12    // Try/except within the finally clause of a try/finally.13    //14    __try {15      Counter -= 1;16    }17    __finally {18      __try {19        Counter += 2;20        // RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);21      } __except(Counter) {22        __try {23          Counter += 3;24        }25        __finally {26          if (abnormal_termination() == 1) {27            Counter += 5;28          }29        }30      }31    }32    // expect Counter == 933    return 1;34}35 36