ReactOS 0.4.15-dev-7931-gfd331f1
seh0018.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 "seh.h"
7
8char test[] = "SEH0018.c";
9
11 RaiseException(Status, 0, /*no flags*/ 0, 0);
12 return;
13}
14
16 try {
17 try {
19 }
20 except((((DWORD)GetExceptionCode()) == Status) ? 1 : 0)
21 /* exeption handler should get executed */
22 {
23 /* set counter = 2 */
24 *Counter += 1;
25 return;
26 }
27 endtry
28 }
29 finally {
30 /* set counter = 3 */
31 *Counter += 1;
32 }
33 endtry
34
35 return;
36}
37
38int main() {
39
41
42 Counter = 0;
43
44 try {
45 /* set counter = 1 */
46 Counter += 1;
48 }
49 finally {
50 /* set counter = 4 */
51 Counter += 1;
52 }
53 endtry
54
55 if (Counter != 4) {
56 printf("TEST 18 FAILED. Counter = %d\n\r", Counter);
57 return -1;
58 }
59
60 return 0;
61}
#define except(x)
Definition: btrfs_drv.h:136
VOID WINAPI RaiseException(_In_ DWORD dwExceptionCode, _In_ DWORD dwExceptionFlags, _In_ DWORD nNumberOfArguments, _In_opt_ const ULONG_PTR *lpArguments)
Definition: except.c:700
unsigned long DWORD
Definition: ntddk_ex.h:95
#define printf
Definition: freeldr.h:97
Status
Definition: gdiplustypes.h:25
long LONG
Definition: pedump.c:60
void eret(DWORD Status, PLONG Counter)
Definition: seh0018.c:15
void rtlRaiseException(DWORD Status)
Definition: seh0018.c:10
char test[]
Definition: seh0018.c:8
int main()
Definition: seh0018.c:38
#define endtry
Definition: seh.h:24
#define GetExceptionCode()
Definition: seh.h:27
static LARGE_INTEGER Counter
Definition: clock.c:43
int32_t * PLONG
Definition: typedefs.h:58
#define EXCEPTION_ACCESS_VIOLATION
Definition: winbase.h:311