diff options
author | James Y Knight <jyknight@google.com> | 2019-02-01 20:43:34 +0000 |
---|---|---|
committer | James Y Knight <jyknight@google.com> | 2019-02-01 20:43:34 +0000 |
commit | d9e85a0861b7e9320c34547a2ad7f49c504a9381 (patch) | |
tree | bafc31ff522534fb10e65ddc519943a7be7abc28 /llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp | |
parent | 7976eb58382b25d0e17490b9d77fb06cb000c95b (diff) | |
download | bcm5719-llvm-d9e85a0861b7e9320c34547a2ad7f49c504a9381.tar.gz bcm5719-llvm-d9e85a0861b7e9320c34547a2ad7f49c504a9381.zip |
[opaque pointer types] Pass function types to InvokeInst creation.
This cleans up all InvokeInst creation in LLVM to explicitly pass a
function type rather than deriving it from the pointer's element-type.
Differential Revision: https://reviews.llvm.org/D57171
llvm-svn: 352910
Diffstat (limited to 'llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp')
-rw-r--r-- | llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp b/llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp index a48d21e5366..cb884d189d8 100644 --- a/llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp +++ b/llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp @@ -936,7 +936,7 @@ void DevirtModule::applyICallBranchFunnel(VTableSlotInfo &SlotInfo, NewCS = IRB.CreateCall(NewFT, IRB.CreateBitCast(JT, NewFTPtr), Args); else NewCS = IRB.CreateInvoke( - IRB.CreateBitCast(JT, NewFTPtr), + NewFT, IRB.CreateBitCast(JT, NewFTPtr), cast<InvokeInst>(CS.getInstruction())->getNormalDest(), cast<InvokeInst>(CS.getInstruction())->getUnwindDest(), Args); NewCS.setCallingConv(CS.getCallingConv()); |