lib/IRGen/GenMeta.cpp
static llvm::Value *emitForeignTypeMetadataRef(IRGenFunction &IGF,
                                               CanType type) {
  llvm::Value *candidate = IGF.IGM.getAddrOfForeignTypeMetadataCandidate(type);
  auto call = IGF.Builder.CreateCall(IGF.IGM.getGetForeignTypeMetadataFn(),
                                candidate);
  call->addAttribute(llvm::AttributeList::FunctionIndex,
                     llvm::Attribute::NoUnwind);
  call->addAttribute(llvm::AttributeList::FunctionIndex,
                     llvm::Attribute::ReadNone);
  return call;
}
/// Emit a reference to the type metadata for a foreign type.
Emit a reference to the type metadata for a foreign type.
Emit a reference to the type metadata for a foreign type .
static llvm::Value *emitForeignTypeMetadataRef(IRGenFunction &IGF,
                                               CanType type) {
  llvm::Value *candidate = IGF.IGM.getAddrOfForeignTypeMetadataCandidate(type);
  auto call = IGF.Builder.CreateCall(IGF.IGM.getGetForeignTypeMetadataFn(),
                                candidate);
  call->addAttribute(llvm::AttributeList::FunctionIndex,
                     llvm::Attribute::NoUnwind);
  call->addAttribute(llvm::AttributeList::FunctionIndex,
                     llvm::Attribute::ReadNone);
  return call;
}
static llvm :: Value * emitForeignTypeMetadataRef ( IRGenFunction & IGF , CanType type ) { llvm :: Value * candidate = IGF . IGM . getAddrOfForeignTypeMetadataCandidate ( type ) ; auto call = IGF . Builder . CreateCall ( IGF . IGM . getGetForeignTypeMetadataFn ( ) , candidate ) ; call -> addAttribute ( llvm :: AttributeList :: FunctionIndex , llvm :: Attribute :: NoUnwind ) ; call -> addAttribute ( llvm :: AttributeList :: FunctionIndex , llvm :: Attribute :: ReadNone ) ; return call ; }
Emit a reference to the type metadata for a foreign type.
Emit a reference to the type metadata for a foreign type .