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[] = "SEH0016.c"; 9 10 void rtlRaiseExceptin(DWORD Status) { 11 RaiseException(Status, 0, /*no flags*/ 0, 0); 12 return; 13 } 14 15 int main() { 16 LONG Counter; 17 18 Counter = 0; 19 20 try { 21 try { 22 try { 23 /* set counter = 1 and raise exception */ 24 Counter += 1; 25 rtlRaiseExceptin(EXCEPTION_INT_OVERFLOW); 26 } 27 except(1) { 28 /* set counter = 2 */ 29 Counter += 1; 30 goto t11; /* can't jump into the body of a try/finally */ 31 } 32 endtry 33 } 34 finally { 35 /* set counter = 3 */ 36 Counter += 1; 37 } 38 endtry 39 40 t11: 41 ; 42 } 43 finally { 44 /* set counter = 4 */ 45 Counter += 1; 46 } 47 endtry 48 49 if (Counter != 4) { 50 printf("TEST 16 FAILED. Counter = %d\n\r", Counter); 51 return -1; 52 } 53 54 return 0; 55 } 56