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[] = "SEH0042.c";
9 
10 int main() {
11   ULONG Index1;
12   LONG Counter;
13 
14   Counter = 0;
15 
16   for (Index1 = 0; Index1 < 10; Index1 += 1) {
17     try {
18       try {
19         if ((Index1 & 0x1) == 1) {
20           /*
21            * never gets here, break in finally
22            * when Index1 is 0
23            */
24           Counter += 1;
25         }
26       }
27       finally {
28         /* set counter = 2 */
29         Counter += 2;
30 #if defined(_MSC_VER) && !defined(__clang__)
31         break;
32 #endif
33       }
34       endtry
35 #ifndef _MSC_VER
36       break;
37 #endif
38       /* never gets here */
39       Counter += 4;
40     }
41     finally {
42       /* adds 5 to counter while unwinding from "break" */
43       Counter += 5;
44     }
45     endtry
46     Counter += 6;
47   }
48 
49   if (Counter != 7) {
50     printf("TEST 42 FAILED. Counter = %d\n\r", Counter);
51     return -1;
52   }
53 
54   return 0;
55 }
56