ReactOS  0.4.15-dev-5112-g22d8c0f
seh0021.c
Go to the documentation of this file.
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 <setjmp.h>
7 #include "seh.h"
8 
9 char test[] = "SEH0021.c";
10 
11 int main() {
12  jmp_buf JumpBuffer;
13  LONG Counter;
14 
15  Counter = 0;
16 
17  if (_setjmp(JumpBuffer) == 0) {
18  try {
19  /* set counter = 1 */
20  //(volatile LONG) Counter += 1;
21  *(volatile LONG*)&Counter += 1;
22  }
23  finally {
24  /* set counter = 2 */
25  //(volatile LONG) Counter += 1;
26  *(volatile LONG*)&Counter += 1;
27  longjmp(JumpBuffer, 1);
28  }
29  endtry
30  } else {
31  /* set counter = 3 */
32  //(volatile LONG) Counter += 1;
33  *(volatile LONG*)&Counter += 1;
34  }
35 
36  if (Counter != 3) {
37  printf("TEST 21 FAILED. Counter = %d\n\r", Counter);
38  return -1;
39  }
40 
41  return 0;
42 }
#define endtry
Definition: seh.h:24
char test[]
Definition: seh0021.c:9
int main()
Definition: seh0021.c:11
long LONG
Definition: pedump.c:60
#define printf
Definition: freeldr.h:94
_JBTYPE jmp_buf[_JBLEN]
Definition: setjmp.h:186
static LARGE_INTEGER Counter
Definition: clock.c:43