File tree 2 files changed +13
-3
lines changed
2 files changed +13
-3
lines changed Original file line number Diff line number Diff line change @@ -79,8 +79,11 @@ func TestVectoredHandlerDontCrashOnLibrary(t *testing.T) {
79
79
if * flagQuick {
80
80
t .Skip ("-quick" )
81
81
}
82
- if runtime .GOARCH != "amd64" {
83
- t .Skip ("this test can only run on windows/amd64" )
82
+ if runtime .GOARCH == "arm" {
83
+ //TODO: remove this skip and update testwinlib/main.c
84
+ // once windows/arm supports c-shared buildmode.
85
+ // See go.dev/issues/43800.
86
+ t .Skip ("this test can't run on windows/arm" )
84
87
}
85
88
testenv .MustHaveGoBuild (t )
86
89
testenv .MustHaveCGO (t )
Original file line number Diff line number Diff line change @@ -11,8 +11,15 @@ LONG WINAPI customExceptionHandlder(struct _EXCEPTION_POINTERS *ExceptionInfo)
11
11
exceptionCount ++ ;
12
12
// prepare context to resume execution
13
13
CONTEXT * c = ExceptionInfo -> ContextRecord ;
14
- c -> Rip = * (ULONG_PTR * )c -> Rsp ;
14
+ #ifdef _AMD64_
15
+ c -> Rip = * (DWORD64 * )c -> Rsp ;
15
16
c -> Rsp += 8 ;
17
+ #elif defined(_X86_ )
18
+ c -> Eip = * (DWORD * )c -> Esp ;
19
+ c -> Esp += 4 ;
20
+ #else
21
+ c -> Pc = c -> Lr ;
22
+ #endif
16
23
return EXCEPTION_CONTINUE_EXECUTION ;
17
24
}
18
25
return EXCEPTION_CONTINUE_SEARCH ;
You can’t perform that action at this time.
0 commit comments