Skip to content

Compilation.update reaches unreachable code #23281

@DonIsaac

Description

@DonIsaac

Zig Version

0.14.0

Steps to Reproduce and Observed Behavior

Behavior

test
└─ install generated to bun-test.o
   └─ zig test bun-test Debug aarch64-macos.13.0-none failure
error: thread 45019889 panic: reached unreachable code
???:?:?: 0x109321043 in _Compilation.update (???)
???:?:?: 0x10935f94b in _main.serve (???)
???:?:?: 0x109379dcb in _main.buildOutputType (???)
???:?:?: 0x1092cd01f in _main (???)
???:?:?: 0x19e124273 in ??? (???)
???:?:?: 0x3460ffffffffffff in ??? (???)

error: the following command terminated unexpectedly:
/Users/donisaac/Documents/bun/bun2/vendor/zig/zig test -freference-trace=24 -fllvm -fno-lld -fno-strip -fno-omit-frame-pointer -ODebug -target aarch64-macos.13.0-none -mcpu apple_m1 --dep zlib-internal --dep async --dep ZigGeneratedClasses --dep ResolvedSourceTag --dep ErrorCode --dep runtime.out.js --dep bake-codegen/bake.client.js --dep bake-codegen/bake.error.js --dep bake-codegen/bake.server.js --dep bun-error/index.js --dep bun-error/bun-error.css --dep fallback-decoder.js --dep node-fallbacks/react-refresh.js --dep node-fallbacks/assert.js --dep node-fallbacks/buffer.js --dep node-fallbacks/console.js --dep node-fallbacks/constants.js --dep node-fallbacks/crypto.js --dep node-fallbacks/domain.js --dep node-fallbacks/events.js --dep node-fallbacks/http.js --dep node-fallbacks/https.js --dep node-fallbacks/net.js --dep node-fallbacks/os.js --dep node-fallbacks/path.js --dep node-fallbacks/process.js --dep node-fallbacks/punycode.js --dep node-fallbacks/querystring.js --dep node-fallbacks/stream.js --dep node-fallbacks/string_decoder.js --dep node-fallbacks/sys.js --dep node-fallbacks/timers.js --dep node-fallbacks/tty.js --dep node-fallbacks/url.js --dep node-fallbacks/util.js --dep node-fallbacks/zlib.js --dep completions-bash --dep completions-zsh --dep completions-fish --dep build_options --dep translated-c-headers -Mroot=/Users/donisaac/Documents/bun/bun2/src/unit_test.zig -Mzlib-internal=/Users/donisaac/Documents/bun/bun2/src/deps/zlib.posix.zig -Masync=/Users/donisaac/Documents/bun/bun2/src/async/posix_event_loop.zig -MZigGeneratedClasses=/Users/donisaac/Documents/bun/bun2/build/release-ci/codegen/ZigGeneratedClasses.zig -MResolvedSourceTag=/Users/donisaac/Documents/bun/bun2/build/release-ci/codegen/ResolvedSourceTag.zig -MErrorCode=/Users/donisaac/Documents/bun/bun2/build/release-ci/codegen/ErrorCode.zig -Mruntime.out.js=/Users/donisaac/Documents/bun/bun2/build/release-ci/codegen/runtime.out.js -Mbake-codegen/bake.client.js=/Users/donisaac/Documents/bun/bun2/build/release-ci/codegen/bake.client.js -Mbake-codegen/bake.error.js=/Users/donisaac/Documents/bun/bun2/build/release-ci/codegen/bake.error.js -Mbake-codegen/bake.server.js=/Users/donisaac/Documents/bun/bun2/build/release-ci/codegen/bake.server.js -Mbun-error/index.js=/Users/donisaac/Documents/bun/bun2/build/release-ci/codegen/bun-error/index.js -Mbun-error/bun-error.css=/Users/donisaac/Documents/bun/bun2/build/release-ci/codegen/bun-error/bun-error.css -Mfallback-decoder.js=/Users/donisaac/Documents/bun/bun2/build/release-ci/codegen/fallback-decoder.js -Mnode-fallbacks/react-refresh.js=/Users/donisaac/Documents/bun/bun2/build/release-ci/codegen/node-fallbacks/react-refresh.js -Mnode-fallbacks/assert.js=/Users/donisaac/Documents/bun/bun2/build/release-ci/codegen/node-fallbacks/assert.js -Mnode-fallbacks/buffer.js=/Users/donisaac/Documents/bun/bun2/build/release-ci/codegen/node-fallbacks/buffer.js -Mnode-fallbacks/console.js=/Users/donisaac/Documents/bun/bun2/build/release-ci/codegen/node-fallbacks/console.js -Mnode-fallbacks/constants.js=/Users/donisaac/Documents/bun/bun2/build/release-ci/codegen/node-fallbacks/constants.js -Mnode-fallbacks/crypto.js=/Users/donisaac/Documents/bun/bun2/build/release-ci/codegen/node-fallbacks/crypto.js -Mnode-fallbacks/domain.js=/Users/donisaac/Documents/bun/bun2/build/release-ci/codegen/node-fallbacks/domain.js -Mnode-fallbacks/events.js=/Users/donisaac/Documents/bun/bun2/build/release-ci/codegen/node-fallbacks/events.js -Mnode-fallbacks/http.js=/Users/donisaac/Documents/bun/bun2/build/release-ci/codegen/node-fallbacks/http.js -Mnode-fallbacks/https.js=/Users/donisaac/Documents/bun/bun2/build/release-ci/codegen/node-fallbacks/https.js -Mnode-fallbacks/net.js=/Users/donisaac/Documents/bun/bun2/build/release-ci/codegen/node-fallbacks/net.js -Mnode-fallbacks/os.js=/Users/donisaac/Documents/bun/bun2/build/release-ci/codegen/node-fallbacks/os.js -Mnode-fallbacks/path.js=/Users/donisaac/Documents/bun/bun2/build/release-ci/codegen/node-fallbacks/path.js -Mnode-fallbacks/process.js=/Users/donisaac/Documents/bun/bun2/build/release-ci/codegen/node-fallbacks/process.js -Mnode-fallbacks/punycode.js=/Users/donisaac/Documents/bun/bun2/build/release-ci/codegen/node-fallbacks/punycode.js -Mnode-fallbacks/querystring.js=/Users/donisaac/Documents/bun/bun2/build/release-ci/codegen/node-fallbacks/querystring.js -Mnode-fallbacks/stream.js=/Users/donisaac/Documents/bun/bun2/build/release-ci/codegen/node-fallbacks/stream.js -Mnode-fallbacks/string_decoder.js=/Users/donisaac/Documents/bun/bun2/build/release-ci/codegen/node-fallbacks/string_decoder.js -Mnode-fallbacks/sys.js=/Users/donisaac/Documents/bun/bun2/build/release-ci/codegen/node-fallbacks/sys.js -Mnode-fallbacks/timers.js=/Users/donisaac/Documents/bun/bun2/build/release-ci/codegen/node-fallbacks/timers.js -Mnode-fallbacks/tty.js=/Users/donisaac/Documents/bun/bun2/build/release-ci/codegen/node-fallbacks/tty.js -Mnode-fallbacks/url.js=/Users/donisaac/Documents/bun/bun2/build/release-ci/codegen/node-fallbacks/url.js -Mnode-fallbacks/util.js=/Users/donisaac/Documents/bun/bun2/build/release-ci/codegen/node-fallbacks/util.js -Mnode-fallbacks/zlib.js=/Users/donisaac/Documents/bun/bun2/build/release-ci/codegen/node-fallbacks/zlib.js -Mcompletions-bash=/Users/donisaac/Documents/bun/bun2/completions/bun.bash -Mcompletions-zsh=/Users/donisaac/Documents/bun/bun2/completions/bun.zsh -Mcompletions-fish=/Users/donisaac/Documents/bun/bun2/completions/bun.fish -Mbuild_options=/Users/donisaac/Documents/bun/bun2/build/release-ci/cache/zig/local/c/1300b61a4f700af0e47ea055f220241f/options.zig -ODebug -target aarch64-macos.13.0-none -mcpu apple_m1 -Mtranslated-c-headers=/Users/donisaac/Documents/bun/bun2/build/release-ci/cache/zig/local/o/2d86c93958694287aa09bee1a3024484/c-headers-for-zig.zig -lc++ -lc --test-runner /Users/donisaac/Documents/bun/bun2/src/main_test.zig -ffunction-sections -fdata-sections -fallow-shlib-undefined --cache-dir /Users/donisaac/Documents/bun/bun2/build/release-ci/cache/zig/local --global-cache-dir /Users/donisaac/Documents/bun/bun2/build/release-ci/cache/zig/global --name bun-test -fno-compiler-rt -fno-ubsan-rt --zig-lib-dir /Users/donisaac/Documents/bun/bun2/vendor/zig/lib/ --listen=- 

I was unfortunately unable to narrow this down to a more minimal repro, sorry about that.

Steps

  1. Clone the Bun repo and follow the setup guide in CONTRIBUTING.md
  2. Check out this branch
  3. (optionally) modify cmake/scripts/DownloadZig.cmake:31 to download a ReleaseSafe build. This is only available on macos aarch64. You could aldo stick your own debug build of the Zig compiler there.
set(ZIG_NAME bootstrap-${ZIG_ARCH}-${ZIG_OS_ABI}-ReleaseSafe)
  1. run bun build:ci:test

Additional Information

  • Changing the optimize mode has no effect. Happens when compiling for Debug, ReleaseFast, and ReleaseSafe
  • Building tests in other cmake profiles works fine. e.g. bun zig:test and bun zig:test:release

Expected Behavior

Code compiles without panicking.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugObserved behavior contradicts documented or intended behavior

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions