@@ -3945,20 +3945,33 @@ void Metadata::dump() const {
3945
3945
printf (" TargetMetadata.\n " );
3946
3946
printf (" Kind: %s.\n " , getStringForMetadataKind (getKind ()).data ());
3947
3947
printf (" Value Witnesses: %p.\n " , getValueWitnesses ());
3948
- printf (" Class Object: %p.\n " , getClassObject ());
3949
- printf (" Type Context Description: %p.\n " , getTypeContextDescriptor ());
3948
+
3949
+ auto *contextDescriptor = getTypeContextDescriptor ();
3950
+ printf (" Name: %s.\n " , contextDescriptor->Name .get ());
3951
+ printf (" Type Context Description: %p.\n " , contextDescriptor);
3950
3952
printf (" Generic Args: %p.\n " , getGenericArgs ());
3953
+
3954
+ #if SWIFT_OBJC_INTEROP
3955
+ if (auto *classObject = getClassObject ()) {
3956
+ printf (" ObjC Name: %s.\n " , class_getName (
3957
+ reinterpret_cast <Class>(const_cast <ClassMetadata *>(classObject))));
3958
+ printf (" Class Object: %p.\n " , classObject);
3959
+ }
3960
+ #endif
3951
3961
}
3952
3962
3953
3963
template <>
3954
3964
LLVM_ATTRIBUTE_USED
3955
- void TypeContextDescriptor ::dump () const {
3965
+ void ContextDescriptor ::dump () const {
3956
3966
printf (" TargetTypeContextDescriptor.\n " );
3957
3967
printf (" Flags: 0x%x.\n " , this ->Flags .getIntValue ());
3958
3968
printf (" Parent: %p.\n " , this ->Parent .get ());
3959
- printf (" Name: %s.\n " , Name.get ());
3960
- printf (" Access function: %p.\n " , static_cast <void *>(getAccessFunction ()));
3961
- printf (" Fields: %p.\n " , Fields.get ());
3969
+ if (auto *typeDescriptor = dyn_cast<TypeContextDescriptor>(this )) {
3970
+ printf (" Name: %s.\n " , typeDescriptor->Name .get ());
3971
+ printf (" Fields: %p.\n " , typeDescriptor->Fields .get ());
3972
+ printf (" Access function: %p.\n " ,
3973
+ static_cast <void *>(typeDescriptor->getAccessFunction ()));
3974
+ }
3962
3975
}
3963
3976
3964
3977
template <>
0 commit comments