diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 87b48aa236..c7f3eaaa9d 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -19,6 +19,15 @@ jobs: ARCH: x64 D_COMPILER: dmd steps: + - script: set + displayName: environment + - script: systeminfo + displayName: systeminfo + - task: CopyFiles@2 + inputs: + sourceFolder: '$(Build.SourcesDirectory)' + contents: '**/*' + TargetFolder: '$(Build.SourcesDirectory)/../druntime' - script: git clone --branch $(DMD_BRANCH) https://github.com/dlang/dmd.git ../dmd - script: | call "%VSINSTALLDIR%\VC\Auxiliary\Build\vcvarsall.bat" %ARCH% @@ -34,12 +43,21 @@ jobs: HOST_DMD_VERSION: LATEST strategy: matrix: - x64: + x86: OS: Win_32 MODEL: 32 ARCH: x86 D_COMPILER: dmd steps: + - script: set + displayName: environment + - script: systeminfo + displayName: systeminfo + - task: CopyFiles@2 + inputs: + sourceFolder: '$(Build.SourcesDirectory)' + contents: '**/*' + TargetFolder: '$(Build.SourcesDirectory)/../druntime' - script: git clone --branch $(DMD_BRANCH) https://github.com/dlang/dmd.git ../dmd - script: cd ../dmd && sh --login .azure-pipelines/windows.sh @@ -59,6 +77,15 @@ jobs: VISUALD_VER: v0.49.0 LDC_VERSION: 1.14.0 steps: + - script: set + displayName: environment + - script: systeminfo + displayName: systeminfo + - task: CopyFiles@2 + inputs: + sourceFolder: '$(Build.SourcesDirectory)' + contents: '**/*' + TargetFolder: '$(Build.SourcesDirectory)/../druntime' - script: git clone --branch $(DMD_BRANCH) https://github.com/dlang/dmd.git ../dmd - script: cd ../dmd && sh --login .azure-pipelines/windows-visual-studio.sh - script: cd ../dmd && call .azure-pipelines\windows-msbuild.bat diff --git a/src/core/thread/fiber.d b/src/core/thread/fiber.d index 5eb15e7555..395d5efe77 100644 --- a/src/core/thread/fiber.d +++ b/src/core/thread/fiber.d @@ -1214,13 +1214,14 @@ private: pstack -= reserve; *(cast(EXCEPTION_REGISTRATION*)pstack) = EXCEPTION_REGISTRATION( sehChainEnd, finalHandler ); + auto pChainEnd = pstack; push( cast(size_t) &fiber_entryPoint ); // EIP push( cast(size_t) m_ctxt.bstack - reserve ); // EBP push( 0x00000000 ); // EDI push( 0x00000000 ); // ESI push( 0x00000000 ); // EBX - push( cast(size_t) m_ctxt.bstack - reserve ); // FS:[0] + push( cast(size_t) pChainEnd ); // FS:[0] push( cast(size_t) m_ctxt.bstack ); // FS:[4] push( cast(size_t) m_ctxt.bstack - m_size ); // FS:[8] push( 0x00000000 ); // EAX @@ -1718,9 +1719,8 @@ unittest // Test exception handling inside fibers. -version (Win32) { - // broken on win32 under windows server 2012: bug 13821 -} else unittest { +unittest +{ enum MSG = "Test message."; string caughtMsg; (new Fiber({ @@ -1758,9 +1758,8 @@ unittest new Fiber({}).call(Fiber.Rethrow.no); } -version (Win32) { - // broken on win32 under windows server 2012: bug 13821 -} else unittest { +unittest +{ enum MSG = "Test message."; try