Changes in directory llvm/lib/CodeGen/SelectionDAG:
LegalizeDAG.cpp updated: 1.489 -> 1.490 --- Log message: Fix incorrect legalization of EHSELECTOR. This fixes CodeGen/Generic/2007-04-14-EHSelectorCrash.ll and PR1326: http://llvm.org/PR1326 --- Diffs of the changes: (+10 -6) LegalizeDAG.cpp | 16 ++++++++++------ 1 files changed, 10 insertions(+), 6 deletions(-) Index: llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp diff -u llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.489 llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.490 --- llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.489 Fri Apr 27 02:33:31 2007 +++ llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp Fri Apr 27 12:12:52 2007 @@ -692,12 +692,14 @@ Result = TLI.LowerOperation(Op, DAG); if (Result.Val) break; // Fall Thru - case TargetLowering::Legal: - Result = DAG.getNode(ISD::MERGE_VALUES, VT, DAG.getConstant(0, VT), Tmp1). - getValue(Op.ResNo); + case TargetLowering::Legal: { + SDOperand Ops[] = { DAG.getConstant(0, VT), Tmp1 }; + Result = DAG.getNode(ISD::MERGE_VALUES, DAG.getVTList(VT, MVT::Other), + Ops, 2).getValue(Op.ResNo); break; } } + } break; case ISD::EHSELECTION: { Tmp1 = LegalizeOp(Node->getOperand(0)); @@ -714,12 +716,14 @@ Result = TLI.LowerOperation(Op, DAG); if (Result.Val) break; // Fall Thru - case TargetLowering::Legal: - Result = DAG.getNode(ISD::MERGE_VALUES, VT, DAG.getConstant(0, VT), Tmp2). - getValue(Op.ResNo); + case TargetLowering::Legal: { + SDOperand Ops[] = { DAG.getConstant(0, VT), Tmp2 }; + Result = DAG.getNode(ISD::MERGE_VALUES, DAG.getVTList(VT, MVT::Other), + Ops, 2).getValue(Op.ResNo); break; } } + } break; case ISD::AssertSext: case ISD::AssertZext: _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits