Part of #611. Difficulty: medium. Audit baseline: master 3950416e (2026-09-12).
Current evidence
tests/cases/cases.toml selects Windows OS/architecture without an explicit MSVC target. .github/workflows/cases.yml builds amd64 through GNU; ARM64 also provisions llvm-mingw. Existing MSVC object and executor probes do not replace the full case suites.
Scope
Add native x64/ARM64 MSVC case execution with explicit compiler paths and output triples. Reuse shared, shared/, and windows/ suites; do not clone them just to distinguish GNU from MSVC. Keep compiler-host and generated-target identity visible, and pass the manifest target through matrix generation and runner invocation.
Completion criteria
Required jobs compile and execute all applicable suites as MSVC programs, keep exact exit/output checks, and publish target-identified reports. Every required tool failure is a failure, not a pass/skip. Preserve case content and coverage; fix actual compiler/provider defects in their focused issues. Existing report/precheck bugs #610, #576 and #577 retain their own ownership. GNU jobs may coexist until the final cutover.
Dependencies and boundaries
#499 compiler discovery; #612, #613, #617; #608/#609 ARM64 blockers. #462 owns general report identity changes.
Part of #611. Difficulty: medium. Audit baseline: master
3950416e(2026-09-12).Current evidence
tests/cases/cases.toml selects Windows OS/architecture without an explicit MSVC target. .github/workflows/cases.yml builds amd64 through GNU; ARM64 also provisions llvm-mingw. Existing MSVC object and executor probes do not replace the full case suites.
Scope
Add native x64/ARM64 MSVC case execution with explicit compiler paths and output triples. Reuse shared, shared/, and windows/ suites; do not clone them just to distinguish GNU from MSVC. Keep compiler-host and generated-target identity visible, and pass the manifest target through matrix generation and runner invocation.
Completion criteria
Required jobs compile and execute all applicable suites as MSVC programs, keep exact exit/output checks, and publish target-identified reports. Every required tool failure is a failure, not a pass/skip. Preserve case content and coverage; fix actual compiler/provider defects in their focused issues. Existing report/precheck bugs #610, #576 and #577 retain their own ownership. GNU jobs may coexist until the final cutover.
Dependencies and boundaries
#499 compiler discovery; #612, #613, #617; #608/#609 ARM64 blockers. #462 owns general report identity changes.