Lines Matching refs:Ty

34   GetAddrOfTypeName(QualType Ty, llvm::GlobalVariable::LinkageTypes Linkage);
38 llvm::Constant *GetAddrOfExternalRTTIDescriptor(QualType Ty);
41 void BuildVTablePointer(const Type *Ty);
58 void BuildObjCObjectTypeInfo(const ObjCObjectType *Ty);
62 void BuildPointerToMemberTypeInfo(const MemberPointerType *Ty);
108 llvm::Constant *BuildTypeInfo(QualType Ty, bool Force = false);
113 RTTIBuilder::GetAddrOfTypeName(QualType Ty,
117 CGM.getCXXABI().getMangleContext().mangleCXXRTTIName(Ty, Out);
135 llvm::Constant *RTTIBuilder::GetAddrOfExternalRTTIDescriptor(QualType Ty) {
139 CGM.getCXXABI().getMangleContext().mangleCXXRTTI(Ty, Out);
158 static bool TypeInfoIsInStandardLibrary(const BuiltinType *Ty) {
168 switch (Ty->getKind()) {
238 static bool IsStandardLibraryRTTIDescriptor(QualType Ty) {
240 if (const BuiltinType *BuiltinTy = dyn_cast<BuiltinType>(Ty))
245 if (const PointerType *PointerTy = dyn_cast<PointerType>(Ty))
256 QualType Ty) {
263 if (const RecordType *RecordTy = dyn_cast<RecordType>(Ty)) {
295 static bool ContainsIncompleteClassType(QualType Ty) {
296 if (const RecordType *RecordTy = dyn_cast<RecordType>(Ty)) {
301 if (const PointerType *PointerTy = dyn_cast<PointerType>(Ty))
305 dyn_cast<MemberPointerType>(Ty)) {
320 getTypeInfoLinkage(CodeGenModule &CGM, QualType Ty) {
330 if (ContainsIncompleteClassType(Ty))
333 switch (Ty->getLinkage()) {
347 if (const RecordType *Record = dyn_cast<RecordType>(Ty)) {
390 void RTTIBuilder::BuildVTablePointer(const Type *Ty) {
403 switch (Ty->getTypeClass()) {
451 cast<CXXRecordDecl>(cast<RecordType>(Ty)->getDecl());
466 Ty = cast<ObjCObjectType>(Ty)->getBaseType().getTypePtr();
469 if (isa<BuiltinType>(Ty)) {
474 assert(isa<ObjCInterfaceType>(Ty));
478 if (cast<ObjCInterfaceType>(Ty)->getDecl()->getSuperClass()) {
511 llvm::Constant *RTTIBuilder::BuildTypeInfo(QualType Ty, bool Force) {
513 Ty = CGM.getContext().getCanonicalType(Ty);
518 CGM.getCXXABI().getMangleContext().mangleCXXRTTI(Ty, Out);
531 bool IsStdLib = IsStandardLibraryRTTIDescriptor(Ty);
532 if (!Force && (IsStdLib || ShouldUseExternalRTTIDescriptor(CGM, Ty)))
533 return GetAddrOfExternalRTTIDescriptor(Ty);
540 Linkage = getTypeInfoLinkage(CGM, Ty);
543 BuildVTablePointer(cast<Type>(Ty));
546 llvm::GlobalVariable *TypeName = GetAddrOfTypeName(Ty, Linkage);
550 switch (Ty->getTypeClass()) {
596 cast<CXXRecordDecl>(cast<RecordType>(Ty)->getDecl());
612 BuildObjCObjectTypeInfo(cast<ObjCObjectType>(Ty));
616 BuildPointerTypeInfo(cast<ObjCObjectPointerType>(Ty)->getPointeeType());
620 BuildPointerTypeInfo(cast<PointerType>(Ty)->getPointeeType());
624 BuildPointerToMemberTypeInfo(cast<MemberPointerType>(Ty));
651 if (const RecordType *RT = dyn_cast<RecordType>(Ty)) {
663 Visibility ExplicitVisibility = Ty->getVisibility();
667 TypeInfoVisibility = minVisibility(TypeInfoVisibility, Ty->getVisibility());
900 void RTTIBuilder::BuildPointerToMemberTypeInfo(const MemberPointerType *Ty) {
901 QualType PointeeTy = Ty->getPointeeType();
912 const RecordType *ClassType = cast<RecordType>(Ty->getClass());
941 llvm::Constant *CodeGenModule::GetAddrOfRTTIDescriptor(QualType Ty,
949 if (ForEH && Ty->isObjCObjectPointerType() &&
951 return ObjCRuntime->GetEHType(Ty);
953 return RTTIBuilder(*this).BuildTypeInfo(Ty);