Skip to content

byval causes infinite recursion #11248

@llvmbot

Description

@llvmbot
Bugzilla Link 10876
Resolution FIXED
Resolved on Jan 23, 2019 04:12
Version trunk
OS Linux
Reporter LLVM Bugzilla Contributor
CC @ahatanak,@sunfishcode,@atanasyan

Extended Description

The four tests:
llvm/trunk/test/CodeGen/ARM/2011-06-09-TailCallByVal.ll
llvm/trunk/test/CodeGen/Mips/cprestore.ll
llvm/trunk/test/CodeGen/Mips/largeimmprinting.ll
llvm/trunk/test/CodeGen/Thumb/2011-05-11-DAGLegalizer.ll
all suffer the same problem: they infinitely recurse due to byval stuff.

Here's the stack trace:

Program received signal SIGSEGV, Segmentation fault.
0x0000000000fd9288 in (anonymous namespace)::SelectionDAGLegalize::LegalizeOp (
this=Cannot access memory at address 0x7fffff5fe898
) at LegalizeDAG.cpp:766
766 SDValue SelectionDAGLegalize::LegalizeOp(SDValue Op) {
(gdb) bt
#​0 0x0000000000fd9288 in (anonymous namespace)::SelectionDAGLegalize::LegalizeOp (this=Cannot access memory at address 0x7fffff5fe898
) at LegalizeDAG.cpp:766
#​1 0x0000000000fd9c24 in (anonymous namespace)::SelectionDAGLegalize::LegalizeOp (this=0x7fffffffd740, Op=...) at LegalizeDAG.cpp:908
#​2 0x0000000000fd9c24 in (anonymous namespace)::SelectionDAGLegalize::LegalizeOp (this=0x7fffffffd740, Op=...) at LegalizeDAG.cpp:908
#​3 0x0000000000fdb147 in (anonymous namespace)::SelectionDAGLegalize::LegalizeOp (this=0x7fffffffd740, Op=...) at LegalizeDAG.cpp:1071
#​4 0x0000000000fd9c24 in (anonymous namespace)::SelectionDAGLegalize::LegalizeOp (this=0x7fffffffd740, Op=...) at LegalizeDAG.cpp:908
#​5 0x0000000000fdabc0 in (anonymous namespace)::SelectionDAGLegalize::LegalizeOp (this=0x7fffffffd740, Op=...) at LegalizeDAG.cpp:1028

#​16 0x0000000000fdb02e in (anonymous namespace)::SelectionDAGLegalize::LegalizeOp (this=0x7fffffffd740, Op=...) at LegalizeDAG.cpp:1062
#​17 0x0000000000fd9c24 in (anonymous namespace)::SelectionDAGLegalize::LegalizeOp (this=0x7fffffffd740, Op=...) at LegalizeDAG.cpp:908
#​18 0x0000000000fd9c24 in (anonymous namespace)::SelectionDAGLegalize::LegalizeOp (this=0x7fffffffd740, Op=...) at LegalizeDAG.cpp:908
#​19 0x0000000000fd9c24 in (anonymous namespace)::SelectionDAGLegalize::LegalizeOp (this=0x7fffffffd740, Op=...) at LegalizeDAG.cpp:908
#​20 0x0000000000fd9c24 in (anonymous namespace)::SelectionDAGLegalize::LegalizeOp (this=0x7fffffffd740, Op=...) at LegalizeDAG.cpp:908
#​21 0x0000000000fd9c24 in (anonymous namespace)::SelectionDAGLegalize::LegalizeOp (this=0x7fffffffd740, Op=...) at LegalizeDAG.cpp:908
#​22 0x0000000000fd9c24 in (anonymous namespace)::SelectionDAGLegalize::LegalizeOp (this=0x7fffffffd740, Op=...) at LegalizeDAG.cpp:908
[...]
#​1537 0x0000000000fd9c24 in (anonymous namespace)::SelectionDAGLegalize::LegalizeOp (this=0x7fffffffd740, Op=...) at LegalizeDAG.cpp:908
#​1538 0x0000000000fd9c24 in (anonymous namespace)::SelectionDAGLegalize::LegalizeOp (this=0x7fffffffd740, Op=...) at LegalizeDAG.cpp:908
#​1539 0x0000000000fd9c24 in (anonymous namespace)::SelectionDAGLegalize::LegalizeOp (this=0x7fffffffd740, Op=...) at LegalizeDAG.cpp:908
#​1540 0x0000000000fd9c24 in (anonymous namespace)::SelectionDAGLegalize::LegalizeOp (this=0x7fffffffd740, Op=...) at LegalizeDAG.cpp:908
#​1541 0x0000000000fd9c24 in (anonymous namespace)::SelectionDAGLegalize::LegalizeOp (this=0x7fffffffd740, Op=...) at LegalizeDAG.cpp:908
#​1542 0x0000000000fd9c24 in (anonymous namespace)::SelectionDAGLegalize::LegalizeOp (this=0x7fffffffd740, Op=...) at LegalizeDAG.cpp:908
#​1543 0x0000000000fdb147 in (anonymous namespace)::SelectionDAGLegalize::LegalizeOp (this=0x7fffffffd740, Op=...) at LegalizeDAG.cpp:1071
#​1544 0x0000000000fdaf45 in (anonymous namespace)::SelectionDAGLegalize::LegalizeOp (this=0x7fffffffd740, Op=...) at LegalizeDAG.cpp:1054
#​1545 0x0000000000fd3ac2 in (anonymous namespace)::SelectionDAGLegalize::LegalizeDAG (this=0x7fffffffd740) at LegalizeDAG.cpp:210
#​1546 0x0000000000ffb8e7 in llvm::SelectionDAG::Legalize (this=0x1d5b5c0)
at LegalizeDAG.cpp:3917
#​1547 0x0000000000f9983e in llvm::SelectionDAGISel::CodeGenAndEmitDAG (
this=0x1d53ba0) at SelectionDAGISel.cpp:559
#​1548 0x0000000000f98a80 in llvm::SelectionDAGISel::SelectBasicBlock (
this=0x1d53ba0, Begin=..., End=..., HadTailCall=@0x7fffffffdb68)
at SelectionDAGISel.cpp:424
#​1549 0x0000000000f9b28a in llvm::SelectionDAGISel::SelectAllBasicBlocks (
this=0x1d53ba0, Fn=...) at SelectionDAGISel.cpp:989
#​1550 0x0000000000f97fe2 in llvm::SelectionDAGISel::runOnMachineFunction (
this=0x1d53ba0, mf=...) at SelectionDAGISel.cpp:292
#​1551 0x0000000001105095 in llvm::MachineFunctionPass::runOnFunction (
this=0x1d53ba0, F=...) at MachineFunctionPass.cpp:33
#​1552 0x00000000014930e8 in llvm::FPPassManager::runOnFunction (
this=0x1d526e0, F=...) at PassManager.cpp:1512
#​1553 0x0000000001493333 in llvm::FPPassManager::runOnModule (this=0x1d526e0,
M=...) at PassManager.cpp:1534
#​1554 0x0000000001493679 in llvm::MPPassManager::runOnModule (this=0x1d4d390,
M=...) at PassManager.cpp:1588
#​1555 0x0000000001493b78 in llvm::PassManagerImpl::run (this=0x1d4d040, M=...)
at PassManager.cpp:1670
#​1556 0x00000000014940c1 in llvm::PassManager::run (this=0x7fffffffe1e0, M=...)
at PassManager.cpp:1714
#​1557 0x00000000009dfedd in main (argc=3, argv=0x7fffffffe418) at llc.cpp:374
(gdb) up 100
#​100 0x0000000000fd9c24 in (anonymous namespace)::SelectionDAGLegalize::LegalizeOp (this=0x7fffffffd740, Op=...) at LegalizeDAG.cpp:908
908 Ops.push_back(LegalizeOp(Node->getOperand(i)));
(gdb) p Node
$1 = (llvm::SDNode *) 0x1d92380
(gdb) p *Node
$2 = {llvm::FoldingSetImpl::Node = {
NextInFoldingSetBucket = 0x0}, <llvm::ilist_nodellvm::SDNode> = {<llvm::ilist_half_nodellvm::SDNode> = {Prev = 0x1d92280}, Next = 0x1d92580},
NodeType = 41, OperandsNeedDelete = 1, HasDebugValue = 0, SubclassData = 0,
NodeId = 87, OperandList = 0x1d92ff0, ValueList = 0x1d86150,
UseList = 0x1d93118, NumOperands = 4, NumValues = 2, debugLoc = {
LineCol = 0, ScopeIdx = 0}}
(gdb) p Node->dump()
Cannot access memory at address 0x7fffff5fe778

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions