1 // Copyright (c) Microsoft. All rights reserved.
2 // Licensed under the MIT license. See LICENSE file in the project root for
3 // full license information.
4 
5 #include <windows.h>
6 #include "seh.h"
7 
8 char test[] = "SEH0006.c";
9 
10 int main() {
11   LONG Counter;
12 
13   Counter = 0;
14 
15   try {
16     try {
17       Counter += 1;
18       RaiseException(EXCEPTION_INT_OVERFLOW, 0, /* no flags */
19                      0, NULL);
20       // RtlRaiseException(&ExceptionRecord);
21     }
22     finally {
23       if (abnormal_termination() != 0)
24       /*
25        * an exception is not an abnormal termination
26        * therefore thi should get executed
27        */
28       {
29         Counter += 1;
30       }
31     }
32     endtry
33   }
34   except(Counter)
35   /* counter should equal "EXECUTE HANDLER" */
36   {
37     if (Counter == 2)
38     /*
39      * counter should equal two and therefore
40      * execute this code
41      */
42     {
43       Counter += 1;
44     }
45   }
46   endtry
47 
48   if (Counter != 3) {
49     printf("TEST 6 FAILED. Counter = %d\n\r", Counter);
50     return -1;
51   }
52 
53   return 0;
54 }
55