microsoft / microsoft/snmalloc

MSVC ARM64 internal compiler error when building static shim on Windows ARM64

Open
#862 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
2k
Forks
138
Avg merge
11h 19m
Merged PRs (30d)
5

Description

Description

When updating snmalloc to 0.7.5 in vcpkg https://github.com/microsoft/vcpkg/pull/52545, the arm64-windows CI job fails while building the static-shim feature.

The failure happens when compiling the static shim targets, such as snmalloc-new-override / snmallocshim-static, with MSVC targeting ARM64 in Release mode.

The default header-only build does not appear to be affected. The issue seems specific to the compiled static shim path enabled by SNMALLOC_STATIC_LIBRARY.

Error

The build fails with an MSVC internal compiler error:

freelist.h(917) : Illegal reg field
fatal error C1001: Internal compiler error.
compiler file '...\p2\arm64\disencode.cpp'

Environment

Platform: Windows ARM64
Compiler: MSVC
Build type: Release
Package manager: vcpkg
snmalloc version: 0.7.5
Feature: static-shim

Observed behavior

Building the static-shim feature on arm64-windows fails with an MSVC ARM64 backend internal compiler error.

Expected behavior

The static shim targets should compile successfully on Windows ARM64, or the unsupported compiler/architecture combination should be documented or guarded.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the arm64-windows Release build for the static-shim targets, such as snmalloc-new-override and snmallocshim-static, with SNMALLOC_STATIC_LIBRARY enabled. Start at freelist.h:917 and the vcpkg arm64-windows CI failure; done means the targets compile successfully with MSVC ARM64, or the unsupported combination is documented or guarded.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
build-system, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.