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[] = "SEH0014.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 rtlRaiseExceptin(EXCEPTION_ACCESS_VIOLATION); 23 } 24 except((GetExceptionCode() == STATUS_ACCESS_VIOLATION) ? 1 : 0) 25 /* handler should get executed setting counter to 1 */ 26 { 27 Counter += 1; 28 goto t9; /* executes finally before goto */ 29 } 30 endtry 31 } 32 finally 33 /* should set counter to 2 */ 34 { 35 Counter += 1; 36 } 37 endtry 38 39 t9: 40 ; 41 42 if (Counter != 2) { 43 printf("TEST 14 FAILED. Counter = %d\n\r", Counter); 44 return -1; 45 } 46 47 return 0; 48 } 49