IRGen: Fix TypeInfo for witness_method SIL values.

@convention(witness_method) values were changed to carry a pointer to their source witness table, but the type info wasn't changed to match. Fixing this fixes rdar://problem/26268544.
This commit is contained in:
Joe Groff
2016-06-13 20:42:27 -07:00
parent 011e306fe8
commit 22c4e08b96
7 changed files with 74 additions and 21 deletions

View File

@@ -274,6 +274,10 @@ IRGenModule::IRGenModule(IRGenerator &irgen,
FunctionPtrTy,
RefCountedPtrTy,
});
WitnessFunctionPairTy = createStructType(*this, "swift.function", {
FunctionPtrTy,
WitnessTablePtrTy,
});
OpaquePtrTy = llvm::StructType::create(LLVMContext, "swift.opaque")
->getPointerTo(DefaultAS);