diff --git a/.github/workflows/main_ci.yml b/.github/workflows/main_ci.yml index 98edbf2a..0751b5c0 100644 --- a/.github/workflows/main_ci.yml +++ b/.github/workflows/main_ci.yml @@ -63,16 +63,10 @@ jobs: run: | cmake --build "${{ env.BUILD_DIR }}" --target test -## XXX(RLB): Unit tests are currently disabled on Windows because of two -## conflicting bugs. On the one hand, doctest has a bug that causes -## doctest_discover_tests to fail when tests are built with sanitizers. On the -## other hand, if tests are not built with sanitizers, then the unit tests hang -## in the middle of the test run. -## -## - name: Unit Test (Windows) -## if: matrix.os == 'windows-latest' -## run: | -## cmake --build "${{ env.BUILD_DIR }}" --target RUN_TESTS + - name: Unit Test (Windows) + if: matrix.os == 'windows-latest' + run: | + cmake --build "${{ env.BUILD_DIR }}" --target RUN_TESTS interop-test: if: github.event.pull_request.draft == false diff --git a/include/mls/common.h b/include/mls/common.h index 32b58d24..a94f0f49 100644 --- a/include/mls/common.h +++ b/include/mls/common.h @@ -83,6 +83,14 @@ template struct overloaded : Ts... { using Ts::operator()...; + + // XXX(RLB) MSVC has a bug where it incorrectly computes the size of this + // type. Microsoft claims they have fixed it in the latest MSVC, and GitHub + // claims they are running a version with the fix. But in practice, we still + // hit it. Including this dummy variable is a work-around. + // + // https://developercommunity.visualstudio.com/t/runtime-stack-corruption-using-stdvisit/346200 + int dummy = 0; }; // clang-format off