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[] = "SEH0047.c";
9 
10 int main() {
11   ULONG Index1;
12   ULONG Index2 = 1;
13   LONG Counter;
14 
15   Counter = 0;
16   Index1 = 1;
17 
18   switch (Index2) {
19   case 0:
20     /* never gets here */
21     Counter += 100;
22     break;
23   case 1:
24     try {
25       try {
26         if ((Index1 & 0x1) == 1) {
27           /* break out of switch stmt. */
28           break;
29         } else {
30           Counter += 1;
31         }
32       }
33       finally {
34         /* set counter to 2 after "break" */
35         Counter += 2;
36       }
37       endtry
38       Counter += 3;
39     }
40     finally {
41       /* set counter to 4 after break in nested try/finally */
42       Counter += 4;
43     }
44     endtry
45     Counter += 5;
46   }
47 
48   if (Counter != 6) {
49     printf("TEST 47 FAILED. Counter = %d\n\r", Counter);
50     return -1;
51   }
52 
53   return 0;
54 }
55