Skip to content

panic: integer cast truncated bits in MachO.UnwindInfo.generate #23010

@andrewrk

Description

@andrewrk

The destination type here is a u24 which can store a value up to 16 MiB, which is quite small. @intCast means that the surrounding logic has ensured that this value will not be exceeded, but there doesn't seem to be any such logic. This int cast seems to be based only on wishful thinking.

error: thread 72876963 panic: integer cast truncated bits
/Users/ci/zach5/_work/zig/zig/src/link/MachO/UnwindInfo.zig:71:43: 0x109ff03df in generate (zig)
            rec.enc.setDwarfSectionOffset(@intCast(fde.out_offset));
                                          ^
/Users/ci/zach5/_work/zig/zig/src/link/MachO.zig:2096:34: 0x10a005c57 in generateUnwindInfo (zig)
        self.unwind_info.generate(self) catch |err| switch (err) {
                                 ^
/Users/ci/zach5/_work/zig/zig/src/link/MachO.zig:555:32: 0x109d7f097 in flushModule (zig)
    try self.generateUnwindInfo();
                               ^
/Users/ci/zach5/_work/zig/zig/src/link/MachO.zig:353:25: 0x109bef607 in flush (zig)
    try self.flushModule(arena, tid, prog_node);
                        ^
/Users/ci/zach5/_work/zig/zig/src/link.zig:833:77: 0x109ab1c6b in flush (zig)
                return @as(*tag.Type(), @fieldParentPtr("base", base)).flush(arena, tid, prog_node);
                                                                            ^
/Users/ci/zach5/_work/zig/zig/src/Compilation.zig:2512:17: 0x109ab14e7 in flush (zig)
        lf.flush(arena, tid, prog_node) catch |err| switch (err) {
                ^
/Users/ci/zach5/_work/zig/zig/src/Compilation.zig:2449:22: 0x109ab533f in update (zig)
            try flush(comp, arena, .{
                     ^
/Users/ci/zach5/_work/zig/zig/src/main.zig:4217:32: 0x109b1fe43 in serve (zig)
                try comp.update(main_progress_node);
                               ^
/Users/ci/zach5/_work/zig/zig/src/main.zig:3657:22: 0x109b40e3f in buildOutputType (zig)
            try serve(
                     ^
/Users/ci/zach5/_work/zig/zig/src/main.zig:271:31: 0x109a414fb in mainArgs (zig)
        return buildOutputType(gpa, arena, args, .{ .build = .Exe });
                              ^
/Users/ci/zach5/_work/zig/zig/src/main.zig:212:20: 0x109a3fe17 in main (zig)
    return mainArgs(gpa, arena, args);
                   ^
/Users/ci/zach5/_work/zig/zig/lib/std/start.zig:656:37: 0x109a3fc17 in main (zig)
            const result = root.main() catch |err| {
                                    ^
???:?:?: 0x19d390273 in ??? (???)
???:?:?: 0x0 in ??? (???)

error: the following command terminated unexpectedly:
/Users/ci/zach5/_work/zig/zig/build-debug/stage3-debug/bin/zig build-exe --stack 48234496 -cflags -std=c++17 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -D_GNU_SOURCE -fno-exceptions -fno-rtti -fno-stack-protector -fvisibility-inlines-hidden -Wno-type-limits -Wno-missing-braces -Wno-comment -DNDEBUG=1 -- /Users/ci/zach5/_work/zig/zig/src/zig_llvm.cpp /Users/ci/zach5/_work/zig/zig/src/zig_clang.cpp /Users/ci/zach5/_work/zig/zig/src/zig_llvm-ar.cpp /Users/ci/zach5/_work/zig/zig/src/zig_clang_driver.cpp /Users/ci/zach5/_work/zig/zig/src/zig_clang_cc1_main.cpp /Users/ci/zach5/_work/zig/zig/src/zig_clang_cc1as_main.cpp -lclangFrontendTool -lclangCodeGen -lclangFrontend -lclangDriver -lclangSerialization -lclangSema -lclangStaticAnalyzerFrontend -lclangStaticAnalyzerCheckers -lclangStaticAnalyzerCore -lclangAnalysis -lclangASTMatchers -lclangAST -lclangParse -lclangAPINotes -lclangBasic -lclangEdit -lclangLex -lclangARCMigrate -lclangRewriteFrontend -lclangRewrite -lclangCrossTU -lclangIndex -lclangToolingCore -lclangExtractAPI -lclangSupport -lclangInstallAPI -llldMinGW -llldELF -llldCOFF -llldWasm -llldMachO -llldCommon -lLLVMWindowsManifest -lLLVMXRay -lLLVMLibDriver -lLLVMDlltoolDriver -lLLVMTextAPIBinaryReader -lLLVMCoverage -lLLVMLineEditor -lLLVMSandboxIR -lLLVMXCoreDisassembler -lLLVMXCoreCodeGen -lLLVMXCoreDesc -lLLVMXCoreInfo -lLLVMX86TargetMCA -lLLVMX86Disassembler -lLLVMX86AsmParser -lLLVMX86CodeGen -lLLVMX86Desc -lLLVMX86Info -lLLVMWebAssemblyDisassembler -lLLVMWebAssemblyAsmParser -lLLVMWebAssemblyCodeGen -lLLVMWebAssemblyUtils -lLLVMWebAssemblyDesc -lLLVMWebAssemblyInfo -lLLVMVEDisassembler -lLLVMVEAsmParser -lLLVMVECodeGen -lLLVMVEDesc -lLLVMVEInfo -lLLVMSystemZDisassembler -lLLVMSystemZAsmParser -lLLVMSystemZCodeGen -lLLVMSystemZDesc -lLLVMSystemZInfo -lLLVMSparcDisassembler -lLLVMSparcAsmParser -lLLVMSparcCodeGen -lLLVMSparcDesc -lLLVMSparcInfo -lLLVMRISCVTargetMCA -lLLVMRISCVDisassembler -lLLVMRISCVAsmParser -lLLVMRISCVCodeGen -lLLVMRISCVDesc -lLLVMRISCVInfo -lLLVMPowerPCDisassembler -lLLVMPowerPCAsmParser -lLLVMPowerPCCodeGen -lLLVMPowerPCDesc -lLLVMPowerPCInfo -lLLVMNVPTXCodeGen -lLLVMNVPTXDesc -lLLVMNVPTXInfo -lLLVMMSP430Disassembler -lLLVMMSP430AsmParser -lLLVMMSP430CodeGen -lLLVMMSP430Desc -lLLVMMSP430Info -lLLVMMipsDisassembler -lLLVMMipsAsmParser -lLLVMMipsCodeGen -lLLVMMipsDesc -lLLVMMipsInfo -lLLVMLoongArchDisassembler -lLLVMLoongArchAsmParser -lLLVMLoongArchCodeGen -lLLVMLoongArchDesc -lLLVMLoongArchInfo -lLLVMLanaiDisassembler -lLLVMLanaiCodeGen -lLLVMLanaiAsmParser -lLLVMLanaiDesc -lLLVMLanaiInfo -lLLVMHexagonDisassembler -lLLVMHexagonCodeGen -lLLVMHexagonAsmParser -lLLVMHexagonDesc -lLLVMHexagonInfo -lLLVMBPFDisassembler -lLLVMBPFAsmParser -lLLVMBPFCodeGen -lLLVMBPFDesc -lLLVMBPFInfo -lLLVMAVRDisassembler -lLLVMAVRAsmParser -lLLVMAVRCodeGen -lLLVMAVRDesc -lLLVMAVRInfo -lLLVMARMDisassembler -lLLVMARMAsmParser -lLLVMARMCodeGen -lLLVMARMDesc -lLLVMARMUtils -lLLVMARMInfo -lLLVMAMDGPUTargetMCA -lLLVMAMDGPUDisassembler -lLLVMAMDGPUAsmParser -lLLVMAMDGPUCodeGen -lLLVMAMDGPUDesc -lLLVMAMDGPUUtils -lLLVMAMDGPUInfo -lLLVMAArch64Disassembler -lLLVMAArch64AsmParser -lLLVMAArch64CodeGen -lLLVMAArch64Desc -lLLVMAArch64Utils -lLLVMAArch64Info -lLLVMOrcDebugging -lLLVMOrcJIT -lLLVMWindowsDriver -lLLVMMCJIT -lLLVMJITLink -lLLVMInterpreter -lLLVMExecutionEngine -lLLVMRuntimeDyld -lLLVMOrcTargetProcess -lLLVMOrcShared -lLLVMDWP -lLLVMDebugInfoLogicalView -lLLVMDebugInfoGSYM -lLLVMOption -lLLVMObjectYAML -lLLVMObjCopy -lLLVMMCA -lLLVMMCDisassembler -lLLVMLTO -lLLVMPasses -lLLVMHipStdPar -lLLVMCFGuard -lLLVMCoroutines -lLLVMipo -lLLVMVectorize -lLLVMLinker -lLLVMInstrumentation -lLLVMFrontendOpenMP -lLLVMFrontendOffloading -lLLVMFrontendOpenACC -lLLVMFrontendHLSL -lLLVMFrontendDriver -lLLVMExtensions -lLLVMDWARFLinkerParallel -lLLVMDWARFLinkerClassic -lLLVMDWARFLinker -lLLVMCodeGenData -lLLVMGlobalISel -lLLVMMIRParser -lLLVMAsmPrinter -lLLVMSelectionDAG -lLLVMCodeGen -lLLVMTarget -lLLVMObjCARCOpts -lLLVMCodeGenTypes -lLLVMIRPrinter -lLLVMInterfaceStub -lLLVMFileCheck -lLLVMFuzzMutate -lLLVMScalarOpts -lLLVMInstCombine -lLLVMAggressiveInstCombine -lLLVMTransformUtils -lLLVMBitWriter -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMFuzzerCLI -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle -lz -lzstd -fno-sanitize-thread -ODebug --dep aro --dep aro_translate_c --dep build_options -Mroot=/Users/ci/zach5/_work/zig/zig/src/main.zig -Maro=/Users/ci/zach5/_work/zig/zig/lib/compiler/aro/aro.zig --dep aro -Maro_translate_c=/Users/ci/zach5/_work/zig/zig/lib/compiler/aro_translate_c.zig -Mbuild_options=/Users/ci/zach5/_work/zig/zig/zig-local-cache/c/b6ce4cef81458185bb531b336c2c5db6/options.zig -lc++ -lc --cache-dir /Users/ci/zach5/_work/zig/zig/zig-local-cache --global-cache-dir /Users/ci/zach5/_work/zig/zig/zig-global-cache --name zig -L /Users/ci/zig+llvm+lld+clang-aarch64-macos-none-0.14.0-dev.1622+2ac543388/lib -I /Users/ci/zig+llvm+lld+clang-aarch64-macos-none-0.14.0-dev.1622+2ac543388/include --zig-lib-dir /Users/ci/zach5/_work/zig/zig/build-debug/../lib/ --listen=- 

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugObserved behavior contradicts documented or intended behaviorlinkingos-macosmacOS

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions