-
-
Notifications
You must be signed in to change notification settings - Fork 239
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Compiler segfault when compiling @naked
function with optional return at -O1
and above
#1959
Labels
Discussion needed
This feature needs discussion to iron out details
Lower Priority
This issue has lower priority for some reason
Milestone
Comments
valgrind logs because I was on my phone when I wrote this: ==183562== Thread 5:
==183562== Conditional jump or move depends on uninitialised value(s)
==183562== at 0x152002F: std::__detail::__variant::__gen_vtable_impl<true, std::__detail::__variant::_Multi_array<void (*)(llvm::DwarfCompileUnit::constructVariableDIE(llvm::DbgVariable&, bool)::$_0&&, std::variant<std::monostate, llvm::Loc::Single, llvm::Loc::Multi, llvm::Loc::MMI, llvm::Loc::EntryValue>&)>, std::tuple<std::variant<std::monostate, llvm::Loc::Single, llvm::Loc::Multi, llvm::Loc::MMI, llvm::Loc::EntryValue>&>, std::integer_sequence<unsigned long, 2ul> >::__visit_invoke(llvm::DwarfCompileUnit::constructVariableDIE(llvm::DbgVariable&, bool)::$_0&&, std::variant<std::monostate, llvm::Loc::Single, llvm::Loc::Multi, llvm::Loc::MMI, llvm::Loc::EntryValue>&) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x151C818: llvm::DwarfCompileUnit::constructVariableDIE(llvm::DbgVariable&, bool) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x151B4D1: llvm::DwarfCompileUnit::createAndAddScopeChildren(llvm::LexicalScope*, llvm::DIE&) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x151D7AB: llvm::DwarfCompileUnit::constructSubprogramScopeDIE(llvm::DISubprogram const*, llvm::LexicalScope*) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x14C0A9E: llvm::DwarfDebug::endFunctionImpl(llvm::MachineFunction const*) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x151464F: llvm::DebugHandlerBase::endFunction(llvm::MachineFunction const*) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x149C3AB: llvm::AsmPrinter::emitFunctionBody() (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0xED38EF: llvm::X86AsmPrinter::runOnMachineFunction(llvm::MachineFunction&) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x2C406B3: llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x162B35E: llvm::FPPassManager::runOnFunction(llvm::Function&) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x1630C52: llvm::FPPassManager::runOnModule(llvm::Module&) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x162BA53: llvm::legacy::PassManagerImpl::run(llvm::Module&) (in /var/home/user/git/c3c/bin/c3c)
==183562==
==183562== Conditional jump or move depends on uninitialised value(s)
==183562== at 0x152002F: std::__detail::__variant::__gen_vtable_impl<true, std::__detail::__variant::_Multi_array<void (*)(llvm::DwarfCompileUnit::constructVariableDIE(llvm::DbgVariable&, bool)::$_0&&, std::variant<std::monostate, llvm::Loc::Single, llvm::Loc::Multi, llvm::Loc::MMI, llvm::Loc::EntryValue>&)>, std::tuple<std::variant<std::monostate, llvm::Loc::Single, llvm::Loc::Multi, llvm::Loc::MMI, llvm::Loc::EntryValue>&>, std::integer_sequence<unsigned long, 2ul> >::__visit_invoke(llvm::DwarfCompileUnit::constructVariableDIE(llvm::DbgVariable&, bool)::$_0&&, std::variant<std::monostate, llvm::Loc::Single, llvm::Loc::Multi, llvm::Loc::MMI, llvm::Loc::EntryValue>&) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x151C818: llvm::DwarfCompileUnit::constructVariableDIE(llvm::DbgVariable&, bool) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x151BEF7: llvm::DwarfCompileUnit::createAndAddScopeChildren(llvm::LexicalScope*, llvm::DIE&) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x151C08F: llvm::DwarfCompileUnit::createAndAddScopeChildren(llvm::LexicalScope*, llvm::DIE&) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x151C186: llvm::DwarfCompileUnit::createAndAddScopeChildren(llvm::LexicalScope*, llvm::DIE&) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x151D7AB: llvm::DwarfCompileUnit::constructSubprogramScopeDIE(llvm::DISubprogram const*, llvm::LexicalScope*) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x14C0A9E: llvm::DwarfDebug::endFunctionImpl(llvm::MachineFunction const*) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x151464F: llvm::DebugHandlerBase::endFunction(llvm::MachineFunction const*) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x149C3AB: llvm::AsmPrinter::emitFunctionBody() (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0xED38EF: llvm::X86AsmPrinter::runOnMachineFunction(llvm::MachineFunction&) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x2C406B3: llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x162B35E: llvm::FPPassManager::runOnFunction(llvm::Function&) (in /var/home/user/git/c3c/bin/c3c)
==183562==
==183562== Conditional jump or move depends on uninitialised value(s)
==183562== at 0x152002F: std::__detail::__variant::__gen_vtable_impl<true, std::__detail::__variant::_Multi_array<void (*)(llvm::DwarfCompileUnit::constructVariableDIE(llvm::DbgVariable&, bool)::$_0&&, std::variant<std::monostate, llvm::Loc::Single, llvm::Loc::Multi, llvm::Loc::MMI, llvm::Loc::EntryValue>&)>, std::tuple<std::variant<std::monostate, llvm::Loc::Single, llvm::Loc::Multi, llvm::Loc::MMI, llvm::Loc::EntryValue>&>, std::integer_sequence<unsigned long, 2ul> >::__visit_invoke(llvm::DwarfCompileUnit::constructVariableDIE(llvm::DbgVariable&, bool)::$_0&&, std::variant<std::monostate, llvm::Loc::Single, llvm::Loc::Multi, llvm::Loc::MMI, llvm::Loc::EntryValue>&) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x151C818: llvm::DwarfCompileUnit::constructVariableDIE(llvm::DbgVariable&, bool) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x151B4D1: llvm::DwarfCompileUnit::createAndAddScopeChildren(llvm::LexicalScope*, llvm::DIE&) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x151C08F: llvm::DwarfCompileUnit::createAndAddScopeChildren(llvm::LexicalScope*, llvm::DIE&) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x151D7AB: llvm::DwarfCompileUnit::constructSubprogramScopeDIE(llvm::DISubprogram const*, llvm::LexicalScope*) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x14C0A9E: llvm::DwarfDebug::endFunctionImpl(llvm::MachineFunction const*) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x151464F: llvm::DebugHandlerBase::endFunction(llvm::MachineFunction const*) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x149C3AB: llvm::AsmPrinter::emitFunctionBody() (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0xED38EF: llvm::X86AsmPrinter::runOnMachineFunction(llvm::MachineFunction&) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x2C406B3: llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x162B35E: llvm::FPPassManager::runOnFunction(llvm::Function&) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x1630C52: llvm::FPPassManager::runOnModule(llvm::Module&) (in /var/home/user/git/c3c/bin/c3c)
==183562==
==183562== Conditional jump or move depends on uninitialised value(s)
==183562== at 0x152002F: std::__detail::__variant::__gen_vtable_impl<true, std::__detail::__variant::_Multi_array<void (*)(llvm::DwarfCompileUnit::constructVariableDIE(llvm::DbgVariable&, bool)::$_0&&, std::variant<std::monostate, llvm::Loc::Single, llvm::Loc::Multi, llvm::Loc::MMI, llvm::Loc::EntryValue>&)>, std::tuple<std::variant<std::monostate, llvm::Loc::Single, llvm::Loc::Multi, llvm::Loc::MMI, llvm::Loc::EntryValue>&>, std::integer_sequence<unsigned long, 2ul> >::__visit_invoke(llvm::DwarfCompileUnit::constructVariableDIE(llvm::DbgVariable&, bool)::$_0&&, std::variant<std::monostate, llvm::Loc::Single, llvm::Loc::Multi, llvm::Loc::MMI, llvm::Loc::EntryValue>&) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x151C818: llvm::DwarfCompileUnit::constructVariableDIE(llvm::DbgVariable&, bool) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x151BEF7: llvm::DwarfCompileUnit::createAndAddScopeChildren(llvm::LexicalScope*, llvm::DIE&) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x151D7AB: llvm::DwarfCompileUnit::constructSubprogramScopeDIE(llvm::DISubprogram const*, llvm::LexicalScope*) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x14C0A9E: llvm::DwarfDebug::endFunctionImpl(llvm::MachineFunction const*) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x151464F: llvm::DebugHandlerBase::endFunction(llvm::MachineFunction const*) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x149C3AB: llvm::AsmPrinter::emitFunctionBody() (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0xED38EF: llvm::X86AsmPrinter::runOnMachineFunction(llvm::MachineFunction&) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x2C406B3: llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x162B35E: llvm::FPPassManager::runOnFunction(llvm::Function&) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x1630C52: llvm::FPPassManager::runOnModule(llvm::Module&) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x162BA53: llvm::legacy::PassManagerImpl::run(llvm::Module&) (in /var/home/user/git/c3c/bin/c3c)
==183562==
==183562== Thread 7:
==183562== Conditional jump or move depends on uninitialised value(s)
==183562== at 0x1019212: llvm::APInt::setLowBits(unsigned int) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x143C649: computeKnownBits(llvm::Value const*, llvm::APInt const&, llvm::KnownBits&, unsigned int, llvm::SimplifyQuery const&) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x143C7CB: llvm::computeKnownBits(llvm::Value const*, llvm::KnownBits&, llvm::DataLayout const&, unsigned int, llvm::AssumptionCache*, llvm::Instruction const*, llvm::DominatorTree const*, bool) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x26F0FF5: llvm::SelectionDAG::InferPtrAlign(llvm::SDValue) const (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x25CD0E1: (anonymous namespace)::DAGCombiner::visitLOAD(llvm::SDNode*) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x259B0D0: (anonymous namespace)::DAGCombiner::combine(llvm::SDNode*) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x2598DC1: llvm::SelectionDAG::Combine(llvm::CombineLevel, llvm::AAResults*, llvm::CodeGenOptLevel) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x270169A: llvm::SelectionDAGISel::CodeGenAndEmitDAG() (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x2700851: llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x26FEA0D: llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0xF8319E: (anonymous namespace)::X86DAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x2C406B3: llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (in /var/home/user/git/c3c/bin/c3c)
==183562==
==183562== Thread 2:
==183562== Invalid read of size 1
==183562== at 0x26D68E7: llvm::SelectionDAG::getMemBasePlusOffset(llvm::SDValue, llvm::TypeSize, llvm::SDLoc const&, llvm::SDNodeFlags) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x2675637: llvm::SelectionDAGBuilder::visitStore(llvm::StoreInst const&) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x266F331: llvm::SelectionDAGBuilder::visit(llvm::Instruction const&) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x27010F5: llvm::SelectionDAGISel::SelectBasicBlock(llvm::ilist_iterator_w_bits<llvm::ilist_detail::node_options<llvm::Instruction, false, false, void, true>, false, true>, llvm::ilist_iterator_w_bits<llvm::ilist_detail::node_options<llvm::Instruction, false, false, void, true>, false, true>, bool&) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x2700851: llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x26FEA0D: llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0xF8319E: (anonymous namespace)::X86DAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x2C406B3: llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x162B35E: llvm::FPPassManager::runOnFunction(llvm::Function&) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x1630C52: llvm::FPPassManager::runOnModule(llvm::Module&) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x162BA53: llvm::legacy::PassManagerImpl::run(llvm::Module&) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x186BBE4: LLVMTargetMachineEmit(LLVMOpaqueTargetMachine*, LLVMOpaqueModule*, llvm::raw_pwrite_stream&, LLVMCodeGenFileType, char**) (in /var/home/user/git/c3c/bin/c3c)
==183562== Address 0x4e73b5b30 is not stack'd, malloc'd or (recently) free'd
==183562==
==183562==
==183562== Process terminating with default action of signal 11 (SIGSEGV): dumping core
==183562== Access not within mapped region at address 0x4E73B5B30
==183562== at 0x26D68E7: llvm::SelectionDAG::getMemBasePlusOffset(llvm::SDValue, llvm::TypeSize, llvm::SDLoc const&, llvm::SDNodeFlags) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x2675637: llvm::SelectionDAGBuilder::visitStore(llvm::StoreInst const&) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x266F331: llvm::SelectionDAGBuilder::visit(llvm::Instruction const&) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x27010F5: llvm::SelectionDAGISel::SelectBasicBlock(llvm::ilist_iterator_w_bits<llvm::ilist_detail::node_options<llvm::Instruction, false, false, void, true>, false, true>, llvm::ilist_iterator_w_bits<llvm::ilist_detail::node_options<llvm::Instruction, false, false, void, true>, false, true>, bool&) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x2700851: llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x26FEA0D: llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0xF8319E: (anonymous namespace)::X86DAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x2C406B3: llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x162B35E: llvm::FPPassManager::runOnFunction(llvm::Function&) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x1630C52: llvm::FPPassManager::runOnModule(llvm::Module&) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x162BA53: llvm::legacy::PassManagerImpl::run(llvm::Module&) (in /var/home/user/git/c3c/bin/c3c)
==183562== by 0x186BBE4: LLVMTargetMachineEmit(LLVMOpaqueTargetMachine*, LLVMOpaqueModule*, llvm::raw_pwrite_stream&, LLVMCodeGenFileType, char**) (in /var/home/user/git/c3c/bin/c3c)
==183562== If you believe this happened as a result of a stack
==183562== overflow in your program's main thread (unlikely but
==183562== possible), you can try to increase the size of the
==183562== main thread stack using the --main-stacksize= flag.
==183562== The main thread stack size used in this run was 8388608. this doesn't seem very helpful, but maybe you can figure out what it means |
As mentioned in #1955 this should not even be allowed under the current rules. So we'll see what will happen with it. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
Discussion needed
This feature needs discussion to iron out details
Lower Priority
This issue has lower priority for some reason
The text was updated successfully, but these errors were encountered: