Skip to content

Specifying the Non-default stackmap encoding crashes llc #87058

Open
@TyeYeah

Description

@TyeYeah

the option --stackmap-version with any int value but not default 3 will crash.
It reports Unsupported stackmap version! error, but some segmentation fault might occur which aslo triggers the crash backtrace.
Crash has be reproduced in llvm-18.1.2 and llvm-16.

Reproduced with:
/mnt/llvm-project-llvmorg-18.1.2/build/bin/llc --stackmap-version=13 /mnt/data/acpi_listen.bc -o /mnt/data/acpi_listen.s

trace:

 Unsupported stackmap version!
UNREACHABLE executed at /mnt/llvm-project-llvmorg-18.1.2/llvm/lib/CodeGen/StackMaps.cpp:168!
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: /mnt/llvm-project-llvmorg-18.1.2/build/bin/llc --stackmap-version=13 /mnt/data/acpi_listen.bc -o /mnt/data/acpi_listen.s
 #0 0x000056f5a4570cb8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /mnt/llvm-project-llvmorg-18.1.2/llvm/lib/Support/Unix/Signals.inc:723:22
 #1 0x000056f5a45710d9 PrintStackTraceSignalHandler(void*) /mnt/llvm-project-llvmorg-18.1.2/llvm/lib/Support/Unix/Signals.inc:798:1
 #2 0x000056f5a456e529 llvm::sys::RunSignalHandlers() /mnt/llvm-project-llvmorg-18.1.2/llvm/lib/Support/Signals.cpp:105:20
 #3 0x000056f5a4570550 SignalHandler(int) /mnt/llvm-project-llvmorg-18.1.2/llvm/lib/Support/Unix/Signals.inc:413:1
 #4 0x0000738d28042520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #5 0x0000738d280969fc __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
 #6 0x0000738d280969fc __pthread_kill_internal ./nptl/pthread_kill.c:78:10
 #7 0x0000738d280969fc pthread_kill ./nptl/pthread_kill.c:89:10
 #8 0x0000738d28042476 gsignal ./signal/../sysdeps/posix/raise.c:27:6
 #9 0x0000738d280287f3 abort ./stdlib/abort.c:81:7
#10 0x000056f5a44971dd bindingsErrorHandler(void*, char const*, bool) /mnt/llvm-project-llvmorg-18.1.2/llvm/lib/Support/ErrorHandling.cpp:221:55
#11 0x000056f5a33f5156 llvm::StackMaps::StackMaps(llvm::AsmPrinter&) /mnt/llvm-project-llvmorg-18.1.2/llvm/lib/CodeGen/StackMaps.cpp:169:1
#12 0x000056f5a2be67ed llvm::AsmPrinter::AsmPrinter(llvm::TargetMachine&, std::unique_ptr<llvm::MCStreamer, std::default_delete<llvm::MCStreamer>>) /mnt/llvm-project-llvmorg-18.1.2/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp:380:15
#13 0x000056f5a1dbf303 llvm::X86AsmPrinter::X86AsmPrinter(llvm::TargetMachine&, std::unique_ptr<llvm::MCStreamer, std::default_delete<llvm::MCStreamer>>) /mnt/llvm-project-llvmorg-18.1.2/llvm/lib/Target/X86/X86AsmPrinter.cpp:54:0
#14 0x000056f5a1dc7010 llvm::RegisterAsmPrinter<llvm::X86AsmPrinter>::Allocator(llvm::TargetMachine&, std::unique_ptr<llvm::MCStreamer, std::default_delete<llvm::MCStreamer>>&&) /mnt/llvm-project-llvmorg-18.1.2/llvm/include/llvm/MC/TargetRegistry.h:1445:0
#15 0x000056f5a2f8c9fe llvm::Target::createAsmPrinter(llvm::TargetMachine&, std::unique_ptr<llvm::MCStreamer, std::default_delete<llvm::MCStreamer>>&&) const /mnt/llvm-project-llvmorg-18.1.2/llvm/include/llvm/MC/TargetRegistry.h:530:52
#16 0x000056f5a2f8861f llvm::LLVMTargetMachine::addAsmPrinter(llvm::legacy::PassManagerBase&, llvm::raw_pwrite_stream&, llvm::raw_pwrite_stream*, llvm::CodeGenFileType, llvm::MCContext&) /mnt/llvm-project-llvmorg-18.1.2/llvm/lib/CodeGen/LLVMTargetMachine.cpp:146:35
#17 0x000056f5a2f88e71 llvm::LLVMTargetMachine::addPassesToEmitFile(llvm::legacy::PassManagerBase&, llvm::raw_pwrite_stream&, llvm::raw_pwrite_stream*, llvm::CodeGenFileType, bool, llvm::MachineModuleInfoWrapperPass*) /mnt/llvm-project-llvmorg-18.1.2/llvm/lib/CodeGen/LLVMTargetMachine.cpp:246:5
#18 0x000056f5a027b885 compileModule(char**, llvm::LLVMContext&) /mnt/llvm-project-llvmorg-18.1.2/llvm/tools/llc/llc.cpp:714:43
#19 0x000056f5a02792da main /mnt/llvm-project-llvmorg-18.1.2/llvm/tools/llc/llc.cpp:412:35
#20 0x0000738d28029d90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#21 0x0000738d28029e40 call_init ./csu/../csu/libc-start.c:128:20
#22 0x0000738d28029e40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#23 0x000056f5a0277fa5 _start (/mnt/llvm-project-llvmorg-18.1.2/build/bin/llc+0xae0fa5)
Aborted (core dumped)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions