diff options
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG')
| -rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp | 7 | 
1 files changed, 5 insertions, 2 deletions
| diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp index da06ac7a414..4f7257d4a15 100644 --- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp @@ -9111,8 +9111,11 @@ TargetLowering::LowerCallTo(TargetLowering::CallLoweringInfo &CLI) const {        // for now.        if (Args[i].IsReturned && !Op.getValueType().isVector() &&            CanLowerReturn) { -        assert(CLI.RetTy == Args[i].Ty && RetTys.size() == NumValues && -               "unexpected use of 'returned'"); +        assert((CLI.RetTy == Args[i].Ty || +                (CLI.RetTy->isPointerTy() && Args[i].Ty->isPointerTy() && +                 CLI.RetTy->getPointerAddressSpace() == +                     Args[i].Ty->getPointerAddressSpace())) && +               RetTys.size() == NumValues && "unexpected use of 'returned'");          // Before passing 'returned' to the target lowering code, ensure that          // either the register MVT and the actual EVT are the same size or that          // the return value and argument are extended in the same way; in these | 

