[llvm-commits] [test-suite] r105370 - in /test-suite/trunk/SingleSource/UnitTests/ObjC: Makefile exceptions.m print-class-info-x86-32.m print-class-info-x86-32.reference_output print-class-info-x86-64.m print-class-info-x86-64.reference_output print-class-info.m print-class-info.reference_output
Daniel Dunbar
daniel at zuster.org
Wed Jun 2 17:07:48 PDT 2010
Author: ddunbar
Date: Wed Jun 2 19:07:48 2010
New Revision: 105370
URL: http://llvm.org/viewvc/llvm-project?rev=105370&view=rev
Log:
Fix exceptions.m to not change behavior based on ARCH, and split
print-class-info.m into x86_32 and x86_64 variants, since we expect it to differ
but want to keep the test separate for both platforms.
Added:
test-suite/trunk/SingleSource/UnitTests/ObjC/print-class-info-x86-32.m
- copied, changed from r105368, test-suite/trunk/SingleSource/UnitTests/ObjC/print-class-info.m
test-suite/trunk/SingleSource/UnitTests/ObjC/print-class-info-x86-32.reference_output
- copied, changed from r105368, test-suite/trunk/SingleSource/UnitTests/ObjC/print-class-info.reference_output
test-suite/trunk/SingleSource/UnitTests/ObjC/print-class-info-x86-64.m
- copied, changed from r105368, test-suite/trunk/SingleSource/UnitTests/ObjC/print-class-info.m
test-suite/trunk/SingleSource/UnitTests/ObjC/print-class-info-x86-64.reference_output
- copied, changed from r105368, test-suite/trunk/SingleSource/UnitTests/ObjC/print-class-info.reference_output
Removed:
test-suite/trunk/SingleSource/UnitTests/ObjC/print-class-info.m
test-suite/trunk/SingleSource/UnitTests/ObjC/print-class-info.reference_output
Modified:
test-suite/trunk/SingleSource/UnitTests/ObjC/Makefile
test-suite/trunk/SingleSource/UnitTests/ObjC/exceptions.m
Modified: test-suite/trunk/SingleSource/UnitTests/ObjC/Makefile
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/SingleSource/UnitTests/ObjC/Makefile?rev=105370&r1=105369&r2=105370&view=diff
==============================================================================
--- test-suite/trunk/SingleSource/UnitTests/ObjC/Makefile (original)
+++ test-suite/trunk/SingleSource/UnitTests/ObjC/Makefile Wed Jun 2 19:07:48 2010
@@ -8,10 +8,11 @@
LDFLAGS += -lobjc -framework Foundation
PROGRAM_REQUIRED_TO_EXIT_OK := 1
-ifeq ($(ARCH),x86)
-ifdef USE_REFERENCE_OUTPUT
-EXEC_XFAILS = exceptions print-class-info
+ifneq ($(ARCH),x86)
+PROGRAMS_TO_SKIP += print-class-info-x86-32
endif
+ifneq ($(ARCH),x86_64)
+PROGRAMS_TO_SKIP += print-class-info-x86-64
endif
include $(LEVEL)/SingleSource/Makefile.singlesrc
Modified: test-suite/trunk/SingleSource/UnitTests/ObjC/exceptions.m
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/SingleSource/UnitTests/ObjC/exceptions.m?rev=105370&r1=105369&r2=105370&view=diff
==============================================================================
--- test-suite/trunk/SingleSource/UnitTests/ObjC/exceptions.m (original)
+++ test-suite/trunk/SingleSource/UnitTests/ObjC/exceptions.m Wed Jun 2 19:07:48 2010
@@ -148,10 +148,13 @@
t1();
t2();
t3();
- // Unfortunately, gcc gets the semantics wrong on x86_64.
-#if !defined(__x86_64__) && !defined(_M_AMD64)
+
+ // Disabled for now until we move to USE_REFERENCE_OUTPUT, gcc/llvm-gcc get
+ // the semantics wrong on x86_64.
+#if 0
t4();
#endif
+
t5();
[Pool release];
Copied: test-suite/trunk/SingleSource/UnitTests/ObjC/print-class-info-x86-32.m (from r105368, test-suite/trunk/SingleSource/UnitTests/ObjC/print-class-info.m)
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/SingleSource/UnitTests/ObjC/print-class-info-x86-32.m?p2=test-suite/trunk/SingleSource/UnitTests/ObjC/print-class-info-x86-32.m&p1=test-suite/trunk/SingleSource/UnitTests/ObjC/print-class-info.m&r1=105368&r2=105370&rev=105370&view=diff
==============================================================================
(empty)
Copied: test-suite/trunk/SingleSource/UnitTests/ObjC/print-class-info-x86-32.reference_output (from r105368, test-suite/trunk/SingleSource/UnitTests/ObjC/print-class-info.reference_output)
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/SingleSource/UnitTests/ObjC/print-class-info-x86-32.reference_output?p2=test-suite/trunk/SingleSource/UnitTests/ObjC/print-class-info-x86-32.reference_output&p1=test-suite/trunk/SingleSource/UnitTests/ObjC/print-class-info.reference_output&r1=105368&r2=105370&rev=105370&view=diff
==============================================================================
--- test-suite/trunk/SingleSource/UnitTests/ObjC/print-class-info.reference_output (original)
+++ test-suite/trunk/SingleSource/UnitTests/ObjC/print-class-info-x86-32.reference_output Wed Jun 2 19:07:48 2010
@@ -6,31 +6,31 @@
class_conformsToProtocol(c, @protocol(P)): 1
numIvars: 7
i: 0, ivar_getName(ivar): halfDynamicA
- i: 0, ivar_getOffset(ivar): 40
+ i: 0, ivar_getOffset(ivar): 24
i: 0, ivar_getTypeEncoding(ivar): i
i: 0, class_getInstanceVariable(c, ivar_getName(ivar)) == ivar: 1
i: 1, ivar_getName(ivar): halfDynamicB
- i: 1, ivar_getOffset(ivar): 44
+ i: 1, ivar_getOffset(ivar): 28
i: 1, ivar_getTypeEncoding(ivar): i
i: 1, class_getInstanceVariable(c, ivar_getName(ivar)) == ivar: 1
i: 2, ivar_getName(ivar): privateVar
- i: 2, ivar_getOffset(ivar): 8
+ i: 2, ivar_getOffset(ivar): 4
i: 2, ivar_getTypeEncoding(ivar): i
i: 2, class_getInstanceVariable(c, ivar_getName(ivar)) == ivar: 1
i: 3, ivar_getName(ivar): protectedVar
- i: 3, ivar_getOffset(ivar): 12
+ i: 3, ivar_getOffset(ivar): 8
i: 3, ivar_getTypeEncoding(ivar): i
i: 3, class_getInstanceVariable(c, ivar_getName(ivar)) == ivar: 1
i: 4, ivar_getName(ivar): publicVar
- i: 4, ivar_getOffset(ivar): 16
+ i: 4, ivar_getOffset(ivar): 12
i: 4, ivar_getTypeEncoding(ivar): i
i: 4, class_getInstanceVariable(c, ivar_getName(ivar)) == ivar: 1
i: 5, ivar_getName(ivar): strongVar
- i: 5, ivar_getOffset(ivar): 32
+ i: 5, ivar_getOffset(ivar): 20
i: 5, ivar_getTypeEncoding(ivar): @
i: 5, class_getInstanceVariable(c, ivar_getName(ivar)) == ivar: 1
i: 6, ivar_getName(ivar): weakVar
- i: 6, ivar_getOffset(ivar): 24
+ i: 6, ivar_getOffset(ivar): 16
i: 6, ivar_getTypeEncoding(ivar): @
i: 6, class_getInstanceVariable(c, ivar_getName(ivar)) == ivar: 1
numMethods: 15
@@ -44,7 +44,7 @@
i: 0, method_copyReturnType(method): v
i: 0, j: 0, method_copyArgumentType(method, j): @
i: 0, j: 1, method_copyArgumentType(method, j): :
- i: 0, method_getTypeEncoding(method): v16 at 0:8
+ i: 0, method_getTypeEncoding(method): v8 at 0:4
i: 1, sel_getName(method_getName(method)): dynamicNotReally
i: 1, class_respondsToSelector(c, method_getName(method)): 1
i: 1, !strcmp(method_getName(method),sel_getName(method_getName(method))): 1
@@ -55,7 +55,7 @@
i: 1, method_copyReturnType(method): i
i: 1, j: 0, method_copyArgumentType(method, j): @
i: 1, j: 1, method_copyArgumentType(method, j): :
- i: 1, method_getTypeEncoding(method): i16 at 0:8
+ i: 1, method_getTypeEncoding(method): i8 at 0:4
i: 2, sel_getName(method_getName(method)): dynamicNotReally:
i: 2, class_respondsToSelector(c, method_getName(method)): 1
i: 2, !strcmp(method_getName(method),sel_getName(method_getName(method))): 1
@@ -67,7 +67,7 @@
i: 2, j: 0, method_copyArgumentType(method, j): @
i: 2, j: 1, method_copyArgumentType(method, j): :
i: 2, j: 2, method_copyArgumentType(method, j): i
- i: 2, method_getTypeEncoding(method): v20 at 0:8i16
+ i: 2, method_getTypeEncoding(method): v12 at 0:4i8
i: 3, sel_getName(method_getName(method)): extendedInstanceMethod
i: 3, class_respondsToSelector(c, method_getName(method)): 1
i: 3, !strcmp(method_getName(method),sel_getName(method_getName(method))): 1
@@ -78,7 +78,7 @@
i: 3, method_copyReturnType(method): v
i: 3, j: 0, method_copyArgumentType(method, j): @
i: 3, j: 1, method_copyArgumentType(method, j): :
- i: 3, method_getTypeEncoding(method): v16 at 0:8
+ i: 3, method_getTypeEncoding(method): v8 at 0:4
i: 4, sel_getName(method_getName(method)): halfDynamicA
i: 4, class_respondsToSelector(c, method_getName(method)): 1
i: 4, !strcmp(method_getName(method),sel_getName(method_getName(method))): 1
@@ -89,7 +89,7 @@
i: 4, method_copyReturnType(method): i
i: 4, j: 0, method_copyArgumentType(method, j): @
i: 4, j: 1, method_copyArgumentType(method, j): :
- i: 4, method_getTypeEncoding(method): i16 at 0:8
+ i: 4, method_getTypeEncoding(method): i8 at 0:4
i: 5, sel_getName(method_getName(method)): halfDynamicB
i: 5, class_respondsToSelector(c, method_getName(method)): 1
i: 5, !strcmp(method_getName(method),sel_getName(method_getName(method))): 1
@@ -100,7 +100,7 @@
i: 5, method_copyReturnType(method): i
i: 5, j: 0, method_copyArgumentType(method, j): @
i: 5, j: 1, method_copyArgumentType(method, j): :
- i: 5, method_getTypeEncoding(method): i16 at 0:8
+ i: 5, method_getTypeEncoding(method): i8 at 0:4
i: 6, sel_getName(method_getName(method)): halfDynamicB:
i: 6, class_respondsToSelector(c, method_getName(method)): 1
i: 6, !strcmp(method_getName(method),sel_getName(method_getName(method))): 1
@@ -112,7 +112,7 @@
i: 6, j: 0, method_copyArgumentType(method, j): @
i: 6, j: 1, method_copyArgumentType(method, j): :
i: 6, j: 2, method_copyArgumentType(method, j): i
- i: 6, method_getTypeEncoding(method): v20 at 0:8i16
+ i: 6, method_getTypeEncoding(method): v12 at 0:4i8
i: 7, sel_getName(method_getName(method)): instanceMethod
i: 7, class_respondsToSelector(c, method_getName(method)): 1
i: 7, !strcmp(method_getName(method),sel_getName(method_getName(method))): 1
@@ -123,7 +123,7 @@
i: 7, method_copyReturnType(method): v
i: 7, j: 0, method_copyArgumentType(method, j): @
i: 7, j: 1, method_copyArgumentType(method, j): :
- i: 7, method_getTypeEncoding(method): v16 at 0:8
+ i: 7, method_getTypeEncoding(method): v8 at 0:4
i: 8, sel_getName(method_getName(method)): optionalProtocolProperty
i: 8, class_respondsToSelector(c, method_getName(method)): 1
i: 8, !strcmp(method_getName(method),sel_getName(method_getName(method))): 1
@@ -134,7 +134,7 @@
i: 8, method_copyReturnType(method): i
i: 8, j: 0, method_copyArgumentType(method, j): @
i: 8, j: 1, method_copyArgumentType(method, j): :
- i: 8, method_getTypeEncoding(method): i16 at 0:8
+ i: 8, method_getTypeEncoding(method): i8 at 0:4
i: 9, sel_getName(method_getName(method)): requiredProtocolInstanceMethod
i: 9, class_respondsToSelector(c, method_getName(method)): 1
i: 9, !strcmp(method_getName(method),sel_getName(method_getName(method))): 1
@@ -145,7 +145,7 @@
i: 9, method_copyReturnType(method): v
i: 9, j: 0, method_copyArgumentType(method, j): @
i: 9, j: 1, method_copyArgumentType(method, j): :
- i: 9, method_getTypeEncoding(method): v16 at 0:8
+ i: 9, method_getTypeEncoding(method): v8 at 0:4
i: 10, sel_getName(method_getName(method)): requiredProtocolProperty
i: 10, class_respondsToSelector(c, method_getName(method)): 1
i: 10, !strcmp(method_getName(method),sel_getName(method_getName(method))): 1
@@ -156,7 +156,7 @@
i: 10, method_copyReturnType(method): i
i: 10, j: 0, method_copyArgumentType(method, j): @
i: 10, j: 1, method_copyArgumentType(method, j): :
- i: 10, method_getTypeEncoding(method): i16 at 0:8
+ i: 10, method_getTypeEncoding(method): i8 at 0:4
i: 11, sel_getName(method_getName(method)): setHalfDynamicA:
i: 11, class_respondsToSelector(c, method_getName(method)): 1
i: 11, !strcmp(method_getName(method),sel_getName(method_getName(method))): 1
@@ -168,7 +168,7 @@
i: 11, j: 0, method_copyArgumentType(method, j): @
i: 11, j: 1, method_copyArgumentType(method, j): :
i: 11, j: 2, method_copyArgumentType(method, j): i
- i: 11, method_getTypeEncoding(method): v20 at 0:8i16
+ i: 11, method_getTypeEncoding(method): v12 at 0:4i8
i: 12, sel_getName(method_getName(method)): setHalfDynamicB:
i: 12, class_respondsToSelector(c, method_getName(method)): 1
i: 12, !strcmp(method_getName(method),sel_getName(method_getName(method))): 1
@@ -180,7 +180,7 @@
i: 12, j: 0, method_copyArgumentType(method, j): @
i: 12, j: 1, method_copyArgumentType(method, j): :
i: 12, j: 2, method_copyArgumentType(method, j): i
- i: 12, method_getTypeEncoding(method): v20 at 0:8i16
+ i: 12, method_getTypeEncoding(method): v12 at 0:4i8
i: 13, sel_getName(method_getName(method)): setOptionalProtocolProperty:
i: 13, class_respondsToSelector(c, method_getName(method)): 1
i: 13, !strcmp(method_getName(method),sel_getName(method_getName(method))): 1
@@ -192,7 +192,7 @@
i: 13, j: 0, method_copyArgumentType(method, j): @
i: 13, j: 1, method_copyArgumentType(method, j): :
i: 13, j: 2, method_copyArgumentType(method, j): i
- i: 13, method_getTypeEncoding(method): v20 at 0:8i16
+ i: 13, method_getTypeEncoding(method): v12 at 0:4i8
i: 14, sel_getName(method_getName(method)): setRequiredProtocolProperty:
i: 14, class_respondsToSelector(c, method_getName(method)): 1
i: 14, !strcmp(method_getName(method),sel_getName(method_getName(method))): 1
@@ -204,7 +204,7 @@
i: 14, j: 0, method_copyArgumentType(method, j): @
i: 14, j: 1, method_copyArgumentType(method, j): :
i: 14, j: 2, method_copyArgumentType(method, j): i
- i: 14, method_getTypeEncoding(method): v20 at 0:8i16
+ i: 14, method_getTypeEncoding(method): v12 at 0:4i8
numProperties: 11
i: 0, property_getName(property): Ptest_a
i: 0, property_getAttributes(property): Ti,D
@@ -246,34 +246,34 @@
i: 0, isRequired: 0, isInstance: 1, numProtocolMethods: 0
i: 0, isRequired: 1, isInstance: 0, numProtocolMethods: 1
i: 0, j: 0, sel_getName(methods[j].name): categoryClassMethod
- i: 0, j: 0, methods[j].types: v16 at 0:8
+ i: 0, j: 0, methods[j].types: v8 at 0:4
i: 0, isRequired: 1, isInstance: 1, numProtocolMethods: 1
i: 0, j: 0, sel_getName(methods[j].name): categoryInstanceMethod
- i: 0, j: 0, methods[j].types: v16 at 0:8
+ i: 0, j: 0, methods[j].types: v8 at 0:4
i: 0, numProperties: 0
i: 0, numSubProtocols: 0
i: 1, protocol_getName(protocol): P
i: 1, objc_getProtocol(protocol_getName(protocol))==protocol: 1
i: 1, isRequired: 0, isInstance: 0, numProtocolMethods: 1
i: 1, j: 0, sel_getName(methods[j].name): optionalProtocolClassMethod
- i: 1, j: 0, methods[j].types: v16 at 0:8
+ i: 1, j: 0, methods[j].types: v8 at 0:4
i: 1, isRequired: 0, isInstance: 1, numProtocolMethods: 3
i: 1, j: 0, sel_getName(methods[j].name): optionalProtocolInstanceMethod
- i: 1, j: 0, methods[j].types: v16 at 0:8
+ i: 1, j: 0, methods[j].types: v8 at 0:4
i: 1, j: 1, sel_getName(methods[j].name): optionalProtocolProperty
- i: 1, j: 1, methods[j].types: i16 at 0:8
+ i: 1, j: 1, methods[j].types: i8 at 0:4
i: 1, j: 2, sel_getName(methods[j].name): setOptionalProtocolProperty:
- i: 1, j: 2, methods[j].types: v20 at 0:8i16
+ i: 1, j: 2, methods[j].types: v12 at 0:4i8
i: 1, isRequired: 1, isInstance: 0, numProtocolMethods: 1
i: 1, j: 0, sel_getName(methods[j].name): requiredProtocolClassMethod
- i: 1, j: 0, methods[j].types: v16 at 0:8
+ i: 1, j: 0, methods[j].types: v8 at 0:4
i: 1, isRequired: 1, isInstance: 1, numProtocolMethods: 3
i: 1, j: 0, sel_getName(methods[j].name): requiredProtocolInstanceMethod
- i: 1, j: 0, methods[j].types: v16 at 0:8
+ i: 1, j: 0, methods[j].types: v8 at 0:4
i: 1, j: 1, sel_getName(methods[j].name): requiredProtocolProperty
- i: 1, j: 1, methods[j].types: i16 at 0:8
+ i: 1, j: 1, methods[j].types: i8 at 0:4
i: 1, j: 2, sel_getName(methods[j].name): setRequiredProtocolProperty:
- i: 1, j: 2, methods[j].types: v20 at 0:8i16
+ i: 1, j: 2, methods[j].types: v12 at 0:4i8
i: 1, numProperties: 2
i: 1, j: 0, property_getName(property): optionalProtocolProperty
i: 1, j: 0, property_getAttributes(property): Ti
@@ -289,7 +289,7 @@
i: 1, j: 1, isRequired: 1, isInstance: 1, protocol_getProperty(protocol, property_getName(property), isRequired, isInstance) == property: 1
i: 1, numSubProtocols: 1
i: 1, j: 0, protocol_getName(protocol): P
- (int) class_getInstanceSize(c): 48
+ (int) class_getInstanceSize(c): 32
class_getIvarLayout(c): (null)
class_getSuperclass(c) != 0: 1
c != 0: 1
@@ -301,7 +301,7 @@
numMethods: 216
numProperties: 0
numProtocols: 1
- (int) class_getInstanceSize(c): 8
+ (int) class_getInstanceSize(c): 4
class_getIvarLayout(c): (null)
class_getSuperclass(c) != 0: 0
class_getVersion(c): 0
@@ -327,7 +327,7 @@
i: 0, method_copyReturnType(method): v
i: 0, j: 0, method_copyArgumentType(method, j): @
i: 0, j: 1, method_copyArgumentType(method, j): :
- i: 0, method_getTypeEncoding(method): v16 at 0:8
+ i: 0, method_getTypeEncoding(method): v8 at 0:4
i: 1, sel_getName(method_getName(method)): classMethod
i: 1, class_respondsToSelector(c, method_getName(method)): 1
i: 1, !strcmp(method_getName(method),sel_getName(method_getName(method))): 1
@@ -338,7 +338,7 @@
i: 1, method_copyReturnType(method): v
i: 1, j: 0, method_copyArgumentType(method, j): @
i: 1, j: 1, method_copyArgumentType(method, j): :
- i: 1, method_getTypeEncoding(method): v16 at 0:8
+ i: 1, method_getTypeEncoding(method): v8 at 0:4
i: 2, sel_getName(method_getName(method)): extendedClassMethod
i: 2, class_respondsToSelector(c, method_getName(method)): 1
i: 2, !strcmp(method_getName(method),sel_getName(method_getName(method))): 1
@@ -349,7 +349,7 @@
i: 2, method_copyReturnType(method): v
i: 2, j: 0, method_copyArgumentType(method, j): @
i: 2, j: 1, method_copyArgumentType(method, j): :
- i: 2, method_getTypeEncoding(method): v16 at 0:8
+ i: 2, method_getTypeEncoding(method): v8 at 0:4
i: 3, sel_getName(method_getName(method)): requiredProtocolClassMethod
i: 3, class_respondsToSelector(c, method_getName(method)): 1
i: 3, !strcmp(method_getName(method),sel_getName(method_getName(method))): 1
@@ -360,7 +360,7 @@
i: 3, method_copyReturnType(method): v
i: 3, j: 0, method_copyArgumentType(method, j): @
i: 3, j: 1, method_copyArgumentType(method, j): :
- i: 3, method_getTypeEncoding(method): v16 at 0:8
+ i: 3, method_getTypeEncoding(method): v8 at 0:4
numProperties: 0
numProtocols: 2
i: 0, protocol_getName(protocol): CategoryProtocol
@@ -369,34 +369,34 @@
i: 0, isRequired: 0, isInstance: 1, numProtocolMethods: 0
i: 0, isRequired: 1, isInstance: 0, numProtocolMethods: 1
i: 0, j: 0, sel_getName(methods[j].name): categoryClassMethod
- i: 0, j: 0, methods[j].types: v16 at 0:8
+ i: 0, j: 0, methods[j].types: v8 at 0:4
i: 0, isRequired: 1, isInstance: 1, numProtocolMethods: 1
i: 0, j: 0, sel_getName(methods[j].name): categoryInstanceMethod
- i: 0, j: 0, methods[j].types: v16 at 0:8
+ i: 0, j: 0, methods[j].types: v8 at 0:4
i: 0, numProperties: 0
i: 0, numSubProtocols: 0
i: 1, protocol_getName(protocol): P
i: 1, objc_getProtocol(protocol_getName(protocol))==protocol: 1
i: 1, isRequired: 0, isInstance: 0, numProtocolMethods: 1
i: 1, j: 0, sel_getName(methods[j].name): optionalProtocolClassMethod
- i: 1, j: 0, methods[j].types: v16 at 0:8
+ i: 1, j: 0, methods[j].types: v8 at 0:4
i: 1, isRequired: 0, isInstance: 1, numProtocolMethods: 3
i: 1, j: 0, sel_getName(methods[j].name): optionalProtocolInstanceMethod
- i: 1, j: 0, methods[j].types: v16 at 0:8
+ i: 1, j: 0, methods[j].types: v8 at 0:4
i: 1, j: 1, sel_getName(methods[j].name): optionalProtocolProperty
- i: 1, j: 1, methods[j].types: i16 at 0:8
+ i: 1, j: 1, methods[j].types: i8 at 0:4
i: 1, j: 2, sel_getName(methods[j].name): setOptionalProtocolProperty:
- i: 1, j: 2, methods[j].types: v20 at 0:8i16
+ i: 1, j: 2, methods[j].types: v12 at 0:4i8
i: 1, isRequired: 1, isInstance: 0, numProtocolMethods: 1
i: 1, j: 0, sel_getName(methods[j].name): requiredProtocolClassMethod
- i: 1, j: 0, methods[j].types: v16 at 0:8
+ i: 1, j: 0, methods[j].types: v8 at 0:4
i: 1, isRequired: 1, isInstance: 1, numProtocolMethods: 3
i: 1, j: 0, sel_getName(methods[j].name): requiredProtocolInstanceMethod
- i: 1, j: 0, methods[j].types: v16 at 0:8
+ i: 1, j: 0, methods[j].types: v8 at 0:4
i: 1, j: 1, sel_getName(methods[j].name): requiredProtocolProperty
- i: 1, j: 1, methods[j].types: i16 at 0:8
+ i: 1, j: 1, methods[j].types: i8 at 0:4
i: 1, j: 2, sel_getName(methods[j].name): setRequiredProtocolProperty:
- i: 1, j: 2, methods[j].types: v20 at 0:8i16
+ i: 1, j: 2, methods[j].types: v12 at 0:4i8
i: 1, numProperties: 2
i: 1, j: 0, property_getName(property): optionalProtocolProperty
i: 1, j: 0, property_getAttributes(property): Ti
@@ -412,7 +412,7 @@
i: 1, j: 1, isRequired: 1, isInstance: 1, protocol_getProperty(protocol, property_getName(property), isRequired, isInstance) == property: 1
i: 1, numSubProtocols: 1
i: 1, j: 0, protocol_getName(protocol): P
- (int) class_getInstanceSize(c): 40
+ (int) class_getInstanceSize(c): 48
class_getIvarLayout(c): (null)
class_getSuperclass(c) != 0: 1
c != 0: 1
@@ -420,11 +420,11 @@
object_getClassName(c): NSObject
objc_getClass(class_getName(c)) == c: 0
class_conformsToProtocol(c, @protocol(P)): 0
- numIvars: 0
+ numIvars: 12
numMethods: 85
numProperties: 0
numProtocols: 1
- (int) class_getInstanceSize(c): 40
+ (int) class_getInstanceSize(c): 48
class_getIvarLayout(c): (null)
class_getSuperclass(c) != 0: 1
c != 0: 1
@@ -436,7 +436,7 @@
numMethods: 216
numProperties: 0
numProtocols: 1
- (int) class_getInstanceSize(c): 8
+ (int) class_getInstanceSize(c): 4
class_getIvarLayout(c): (null)
class_getSuperclass(c) != 0: 0
class_getVersion(c): 0
@@ -446,5 +446,5 @@
class_getVersion(c): 7
class_getWeakIvarLayout(c): (null)
numObjCProtocols: 21
-numClasses: 528
+numClasses: 529
exit 0
Copied: test-suite/trunk/SingleSource/UnitTests/ObjC/print-class-info-x86-64.m (from r105368, test-suite/trunk/SingleSource/UnitTests/ObjC/print-class-info.m)
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/SingleSource/UnitTests/ObjC/print-class-info-x86-64.m?p2=test-suite/trunk/SingleSource/UnitTests/ObjC/print-class-info-x86-64.m&p1=test-suite/trunk/SingleSource/UnitTests/ObjC/print-class-info.m&r1=105368&r2=105370&rev=105370&view=diff
==============================================================================
(empty)
Copied: test-suite/trunk/SingleSource/UnitTests/ObjC/print-class-info-x86-64.reference_output (from r105368, test-suite/trunk/SingleSource/UnitTests/ObjC/print-class-info.reference_output)
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/SingleSource/UnitTests/ObjC/print-class-info-x86-64.reference_output?p2=test-suite/trunk/SingleSource/UnitTests/ObjC/print-class-info-x86-64.reference_output&p1=test-suite/trunk/SingleSource/UnitTests/ObjC/print-class-info.reference_output&r1=105368&r2=105370&rev=105370&view=diff
==============================================================================
(empty)
Removed: test-suite/trunk/SingleSource/UnitTests/ObjC/print-class-info.m
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/SingleSource/UnitTests/ObjC/print-class-info.m?rev=105369&view=auto
==============================================================================
--- test-suite/trunk/SingleSource/UnitTests/ObjC/print-class-info.m (original)
+++ test-suite/trunk/SingleSource/UnitTests/ObjC/print-class-info.m (removed)
@@ -1,422 +0,0 @@
-#include <Foundation/NSObject.h>
-#include <objc/runtime.h>
-#include <stdio.h>
-#include <stdlib.h>
-
- at protocol UnusedProtocol
-+(void) makeWaffles;
- at end
-
- at protocol P2
- at end
-
- at protocol P <P2>
- at required
-+(void) requiredProtocolClassMethod;
--(void) requiredProtocolInstanceMethod;
- at optional
-+(void) optionalProtocolClassMethod;
--(void) optionalProtocolInstanceMethod;
-
- at required
- at property int requiredProtocolProperty;
- at optional
- at property int optionalProtocolProperty; // XXX this is not actually
- // optional in Obj-C 2? or
- // maybe just in old ABI?
- at end
-
- at protocol CategoryProtocol
-+(void) categoryClassMethod;
--(void) categoryInstanceMethod;
- at end
-
- at interface A : NSObject <P> {
- at private
- int privateVar;
- at protected
- int protectedVar;
- at public
- int publicVar;
- __weak id weakVar;
- __strong id strongVar;
-
- int halfDynamicA, halfDynamicB;
-}
-
- at property(assign) int requiredProtocolProperty;
- at property(assign) int optionalProtocolProperty;
-
- at property(assign) int Ptest_a;
- at property(copy) id Ptest_b;
- at property(retain) id Ptest_c;
-
- at property(getter=iGetThings) int things;
- at property(setter=iSetOtherThings:) int otherThings;
-
- at property(assign) int dynamicNotReally;
- at property(assign) int halfDynamicA;
- at property(assign) int halfDynamicB;
-
-+(void) classMethod;
--(void) instanceMethod;
- at end
-
- at interface A ()
-+(void) extendedClassMethod;
--(void) extendedInstanceMethod;
-+(void) requiredProtocolClassMethod;
--(void) requiredProtocolInstanceMethod;
- at end
-
- at implementation A
- at dynamic Ptest_a, Ptest_b, Ptest_c;
- at dynamic things, otherThings;
-
- at dynamic dynamicNotReally;
--(int) dynamicNotReally {};
--(void) dynamicNotReally: (int) arg {};
-
- at synthesize halfDynamicA;
--(int) halfDynamicA {};
-
- at synthesize halfDynamicB;
--(void) halfDynamicB: (int) arg {};
-
- at synthesize requiredProtocolProperty = privateVar;
-#ifdef ABI2
- at synthesize optionalProtocolProperty = someRandomVar;
-#else
- at synthesize optionalProtocolProperty = publicVar;
-#endif
-
-+(void) classMethod {
- printf("I am a class method\n");
-}
--(void) instanceMethod {
- printf("I am an instance method\n");
-}
-
-+(void) requiredProtocolClassMethod {
- printf("I am a required protocol class method\n");
-}
-
--(void) requiredProtocolInstanceMethod {
- printf("I am a required protocol instance method\n");
-}
-
-+(void) extendedClassMethod {
- printf("I am an extended class method\n");
-}
--(void) extendedInstanceMethod {
- printf("I am an extended instance method\n");
-}
- at end
-
- at interface A ( A_Category ) <CategoryProtocol>
-+(void) categoryClassMethod;
--(void) categoryInstanceMethod;
-
- at property(assign) int categoryProperty;
- at end
-
- at implementation A ( A_Category )
- at dynamic categoryProperty;
-
-+(void) categoryClassMethod {
-}
--(void) categoryInstanceMethod {
-}
- at end
-
-/***/
-
-int ivar_cmp(const void *av, const void *bv) {
- const Ivar *a = av;
- const Ivar *b = bv;
- return strcmp(ivar_getName(*a), ivar_getName(*b));
-}
-
-int methodDescription_cmp(const void *av, const void *bv) {
- const struct objc_method_description *a = av;
- const struct objc_method_description *b = bv;
- return strcmp(sel_getName(a->name), sel_getName(b->name));
-}
-
-int method_cmp(const void *av, const void *bv) {
- const Method *a = av;
- const Method *b = bv;
- return strcmp(method_getName(*a), method_getName(*b));
-}
-
-int property_cmp(const void *av, const void *bv) {
- const objc_property_t *a = av;
- const objc_property_t *b = bv;
- return strcmp(property_getName(*a), property_getName(*b));
-}
-
-int protocol_cmp(const void *av, const void *bv) {
- Protocol * const *a = av;
- Protocol * const *b = bv;
- return strcmp(protocol_getName(*a), protocol_getName(*b));
-}
-
-void sort_ivars(Ivar *ivars, unsigned numIvars) {
- qsort(ivars, numIvars, sizeof(*ivars), ivar_cmp);
-}
-
-void sort_methodDescriptions(struct objc_method_description *methods, unsigned numMethods) {
- qsort(methods, numMethods, sizeof(*methods), methodDescription_cmp);
-}
-
-void sort_methods(Method *methods, unsigned numMethods) {
- unsigned i;
- qsort(methods, numMethods, sizeof(*methods), method_cmp);
-}
-
-void sort_properties(objc_property_t *properties, unsigned numProperties) {
- qsort(properties, numProperties, sizeof(*properties), property_cmp);
-}
-
-void sort_protocols(Protocol **protocols, unsigned numProtocols) {
- qsort(protocols, numProtocols, sizeof(*protocols), protocol_cmp);
-}
-
-/***/
-
-static int indent = 0;
-#define PRINT1(e0,t0) printf("%*s" #e0 ": %" #t0 "\n", indent*2, "", e0)
-#define PRINT2(e0,t0,e1,t1) printf("%*s" #e0 ": %" #t0 ", " #e1 ": %" #t1 "\n", indent*2, "", e0, e1)
-#define PRINT3(e0,t0,e1,t1,e2,t2) printf("%*s" #e0 ": %" #t0 ", " #e1 ": %" #t1 ", " #e2 ": %" #t2 "\n", indent*2, "", e0, e1, e2)
-#define PRINT4(e0,t0,e1,t1,e2,t2,e3,t3) printf("%*s" #e0 ": %" #t0 ", " #e1 ": %" #t1 ", " #e2 ": %" #t2 ", " #e3 ": %" #t3 "\n", indent*2, "", e0, e1, e2, e3)
-#define PRINT5(e0,t0,e1,t1,e2,t2,e3,t3,e4,t4) printf("%*s" #e0 ": %" #t0 ", " #e1 ": %" #t1 ", " #e2 ": %" #t2 ", " #e3 ": %" #t3 ", " #e4 ": %" #t4 "\n", indent*2, "", e0, e1, e2, e3, e4)
-void printInfo(Class c, int printData) {
- unsigned i;
-
- ++indent;
- PRINT1(c != 0, d);
- PRINT1(class_getName(c), s);
- PRINT1(object_getClassName(c), s);
- PRINT1(objc_getClass(class_getName(c)) == c, d);
- PRINT1(class_conformsToProtocol(c, @protocol(P)), d);
-
- unsigned numIvars;
- Ivar *ivars = class_copyIvarList(c, &numIvars);
- sort_ivars(ivars, numIvars);
- PRINT1(numIvars, d);
- if (printData) {
- ++indent;
- for (i=0; i<numIvars; ++i) {
- Ivar ivar = ivars[i];
- PRINT2(i, d, ivar_getName(ivar), s);
- PRINT2(i, d, ivar_getOffset(ivar), d);
- PRINT2(i, d, ivar_getTypeEncoding(ivar), s);
- PRINT2(i, d, class_getInstanceVariable(c, ivar_getName(ivar)) == ivar, d);
- }
- --indent;
- }
-
- unsigned numMethods;
- Method *methods = class_copyMethodList(c, &numMethods);
- sort_methods(methods, numMethods);
- PRINT1(numMethods, d);
- if (printData) {
- ++indent;
- for (i=0; i<numMethods; ++i) {
- Method method = methods[i];
- unsigned j, numArgs;
- PRINT2(i, d, sel_getName(method_getName(method)), s);
- PRINT2(i, d, class_respondsToSelector(c, method_getName(method)), d);
- PRINT2(i, d, !strcmp(method_getName(method),sel_getName(method_getName(method))), d);
- PRINT2(i, d, method_getName(method) == sel_getUid((char*) method_getName(method)), d);
- PRINT2(i, d, class_getClassMethod(c, sel_getUid((char*) method_getName(method))) == method, d);
- PRINT2(i, d, class_getInstanceMethod(c, sel_getUid((char*) method_getName(method))) == method, d);
- PRINT2(i, d, numArgs = method_getNumberOfArguments(method), d);
- PRINT2(i, d, method_copyReturnType(method), s);
- for (j=0; j<numArgs; ++j) {
- PRINT3(i, d, j, d, method_copyArgumentType(method, j), s);
- }
- PRINT2(i, d, method_getTypeEncoding(method), s);
- }
- --indent;
- }
-
- unsigned numProperties;
- objc_property_t *properties = class_copyPropertyList(c, &numProperties);
- sort_properties(properties, numProperties);
- PRINT1(numProperties, d);
- if (printData) {
- ++indent;
- for (i=0; i<numProperties; ++i) {
- objc_property_t property = properties[i];
- PRINT2(i, d, property_getName(property), s);
- PRINT2(i, d, property_getAttributes(property), s);
- PRINT2(i, d, class_getProperty(c, property_getName(property)) == property, d);
- }
- --indent;
- }
-
- unsigned numProtocols;
- Protocol **protocols = class_copyProtocolList(c, &numProtocols);
- sort_protocols(protocols, numProtocols);
- PRINT1(numProtocols, d);
- if (printData) {
- ++indent;
- for (i=0; i<numProtocols; ++i) {
- Protocol *protocol = protocols[i];
- unsigned j;
-
- PRINT2(i, d, protocol_getName(protocol), s);
- PRINT2(i, d, objc_getProtocol(protocol_getName(protocol))==protocol, d);
-
- unsigned isRequired;
- unsigned isInstance;
- for (isRequired = 0; isRequired < 2; ++isRequired) {
- for (isInstance = 0; isInstance < 2; ++isInstance) {
- unsigned numProtocolMethods;
- struct objc_method_description *methods = protocol_copyMethodDescriptionList(protocol,
- isRequired,
- isInstance,
- &numProtocolMethods);
- sort_methodDescriptions(methods, numProtocolMethods);
- PRINT4(i, d, isRequired, d, isInstance, d, numProtocolMethods, d);
- for (j=0; j<numProtocolMethods; ++j) {
- PRINT3(i, d, j, d, sel_getName(methods[j].name), s);
- PRINT3(i, d, j, d, methods[j].types, s);
- }
- }
- }
- unsigned numProperties;
- objc_property_t *properties = protocol_copyPropertyList(protocol, &numProperties);
- sort_properties(properties, numProperties);
- PRINT2(i, d, numProperties, d);
- ++indent;
- for (j=0; j<numProperties; ++j) {
- objc_property_t property = properties[j];
- PRINT3(i, d, j, d, property_getName(property), s);
- PRINT3(i, d, j, d, property_getAttributes(property), s);
- for (isRequired = 0; isRequired < 2; ++isRequired)
- for (isInstance = 0; isInstance < 2; ++isInstance)
- PRINT5(i, d, j, d, isRequired, d, isInstance, d, protocol_getProperty(protocol, property_getName(property), isRequired, isInstance) == property, d);
- }
- --indent;
-
- unsigned numSubProtocols;
- Protocol **subProtocols = protocol_copyProtocolList(protocol, &numSubProtocols);
- sort_protocols(subProtocols, numSubProtocols);
- PRINT2(i, d, numSubProtocols, d);
- ++indent;
- for (j=0; j<numSubProtocols; ++j) {
- Protocol *subProtocol = subProtocols[j];
- PRINT3(i, d, j, d, protocol_getName(protocol), s);
- }
- --indent;
- }
- --indent;
- }
-
- PRINT1((int) class_getInstanceSize(c), d);
-
- PRINT1(class_getIvarLayout(c), s);
-
- PRINT1(class_getSuperclass(c) != 0, d);
-
- Class s = class_getSuperclass(c);
- if (s) {
- printInfo(s, 0);
- }
-
- PRINT1(class_getVersion(c), d);
-
- PRINT1(class_getWeakIvarLayout(c), s);
-
- --indent;
-}
-
-// class_getClassVariable
-// class_getMethodImplementation
-// class_getMethodImplementation_stret
-// class_setIvarLayout
-// class_setSuperclass
-// class_setVersion
-// class_setWeakIvarLayout
-
-// method_exchangeImplementations
-// method_getArgumentType
-// method_getReturnType
-// method_getTypeEncoding
-// method_setImplementation
-
-// objc_allocateClassPair
-// objc_copyProtocolList
-// objc_duplicateClass
-// objc_getFutureClass
-// objc_lookupClass
-// objc_msgSend
-// objc_msgSendSuper
-// objc_msgSendSuper_stret
-// objc_msgSend_fpret
-// objc_msgSend_stret
-// objc_registerClassPair
-// objc_setFutureClass
-
-// object_copy
-// object_dispose
-// object_getIndexedIvars
-// object_getInstanceVariable
-// object_getIvar
-// object_setClass
-// object_setInstanceVariable
-// object_setIvar
-
-// protocol_conformsToProtocol
-// protocol_getMethodDescription
-// protocol_getProperty
-// protocol_isEqual
-
-// sel_isEqual
-// sel_registerName
-
-// class_addMethod
-// class_addProtocol
-// class_createInstance
-
-unsigned Verbose = 0;
-
-int main() {
- unsigned i;
-
- printf("-- A class --\n");
- printInfo([ A class], 1);
- printf("-- A metaclass --\n");
- PRINT1(object_getClass([A class]) == objc_getMetaClass("A"), d);
- printInfo(objc_getMetaClass("A"), 1);
-
- unsigned numObjCProtocols;
- Protocol **protocols = objc_copyProtocolList(&numObjCProtocols);
- PRINT1(numObjCProtocols, d);
- if (Verbose) {
- ++indent;
- for (i=0; i<numObjCProtocols; ++i) {
- Protocol *protocol = protocols[i];
- PRINT2(i, d, protocol_getName(protocol), s);
- }
- --indent;
- }
-
- unsigned numClasses = objc_getClassList(0, 0);
- Class *classes = calloc(numClasses, sizeof(*classes));
- objc_getClassList(classes, numClasses * sizeof(*classes));
- PRINT1(numClasses, d);
- if (Verbose) {
- for (i=0; i<numClasses; ++i) {
- PRINT2(i, d, class_getName(classes[i]), s);
- }
- }
-
- return 0;
-}
-
-// rc && echo "--gcc--" && gcc -fnext-runtime print-class-info.m -lobjc -framework Foundation && ./a.out && echo "--ccc--" && ccc -fnext-runtime print-class-info.m -lobjc -framework Foundation && ./a.out
-// rc && echo "--gcc--" && gcc -fnext-runtime print-class-info.m -lobjc -framework Foundation && ./a.out && echo "--ccc--" && ccc -fnext-runtime print-class-info.m -lobjc -framework Foundation && ./a.out && ../TestRunner.sh print-class-info.m
-// rc && ../TestRunner.sh print-class-info.m
Removed: test-suite/trunk/SingleSource/UnitTests/ObjC/print-class-info.reference_output
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/SingleSource/UnitTests/ObjC/print-class-info.reference_output?rev=105369&view=auto
==============================================================================
--- test-suite/trunk/SingleSource/UnitTests/ObjC/print-class-info.reference_output (original)
+++ test-suite/trunk/SingleSource/UnitTests/ObjC/print-class-info.reference_output (removed)
@@ -1,450 +0,0 @@
--- A class --
- c != 0: 1
- class_getName(c): A
- object_getClassName(c): A
- objc_getClass(class_getName(c)) == c: 1
- class_conformsToProtocol(c, @protocol(P)): 1
- numIvars: 7
- i: 0, ivar_getName(ivar): halfDynamicA
- i: 0, ivar_getOffset(ivar): 40
- i: 0, ivar_getTypeEncoding(ivar): i
- i: 0, class_getInstanceVariable(c, ivar_getName(ivar)) == ivar: 1
- i: 1, ivar_getName(ivar): halfDynamicB
- i: 1, ivar_getOffset(ivar): 44
- i: 1, ivar_getTypeEncoding(ivar): i
- i: 1, class_getInstanceVariable(c, ivar_getName(ivar)) == ivar: 1
- i: 2, ivar_getName(ivar): privateVar
- i: 2, ivar_getOffset(ivar): 8
- i: 2, ivar_getTypeEncoding(ivar): i
- i: 2, class_getInstanceVariable(c, ivar_getName(ivar)) == ivar: 1
- i: 3, ivar_getName(ivar): protectedVar
- i: 3, ivar_getOffset(ivar): 12
- i: 3, ivar_getTypeEncoding(ivar): i
- i: 3, class_getInstanceVariable(c, ivar_getName(ivar)) == ivar: 1
- i: 4, ivar_getName(ivar): publicVar
- i: 4, ivar_getOffset(ivar): 16
- i: 4, ivar_getTypeEncoding(ivar): i
- i: 4, class_getInstanceVariable(c, ivar_getName(ivar)) == ivar: 1
- i: 5, ivar_getName(ivar): strongVar
- i: 5, ivar_getOffset(ivar): 32
- i: 5, ivar_getTypeEncoding(ivar): @
- i: 5, class_getInstanceVariable(c, ivar_getName(ivar)) == ivar: 1
- i: 6, ivar_getName(ivar): weakVar
- i: 6, ivar_getOffset(ivar): 24
- i: 6, ivar_getTypeEncoding(ivar): @
- i: 6, class_getInstanceVariable(c, ivar_getName(ivar)) == ivar: 1
- numMethods: 15
- i: 0, sel_getName(method_getName(method)): categoryInstanceMethod
- i: 0, class_respondsToSelector(c, method_getName(method)): 1
- i: 0, !strcmp(method_getName(method),sel_getName(method_getName(method))): 1
- i: 0, method_getName(method) == sel_getUid((char*) method_getName(method)): 1
- i: 0, class_getClassMethod(c, sel_getUid((char*) method_getName(method))) == method: 0
- i: 0, class_getInstanceMethod(c, sel_getUid((char*) method_getName(method))) == method: 1
- i: 0, numArgs = method_getNumberOfArguments(method): 2
- i: 0, method_copyReturnType(method): v
- i: 0, j: 0, method_copyArgumentType(method, j): @
- i: 0, j: 1, method_copyArgumentType(method, j): :
- i: 0, method_getTypeEncoding(method): v16 at 0:8
- i: 1, sel_getName(method_getName(method)): dynamicNotReally
- i: 1, class_respondsToSelector(c, method_getName(method)): 1
- i: 1, !strcmp(method_getName(method),sel_getName(method_getName(method))): 1
- i: 1, method_getName(method) == sel_getUid((char*) method_getName(method)): 1
- i: 1, class_getClassMethod(c, sel_getUid((char*) method_getName(method))) == method: 0
- i: 1, class_getInstanceMethod(c, sel_getUid((char*) method_getName(method))) == method: 1
- i: 1, numArgs = method_getNumberOfArguments(method): 2
- i: 1, method_copyReturnType(method): i
- i: 1, j: 0, method_copyArgumentType(method, j): @
- i: 1, j: 1, method_copyArgumentType(method, j): :
- i: 1, method_getTypeEncoding(method): i16 at 0:8
- i: 2, sel_getName(method_getName(method)): dynamicNotReally:
- i: 2, class_respondsToSelector(c, method_getName(method)): 1
- i: 2, !strcmp(method_getName(method),sel_getName(method_getName(method))): 1
- i: 2, method_getName(method) == sel_getUid((char*) method_getName(method)): 1
- i: 2, class_getClassMethod(c, sel_getUid((char*) method_getName(method))) == method: 0
- i: 2, class_getInstanceMethod(c, sel_getUid((char*) method_getName(method))) == method: 1
- i: 2, numArgs = method_getNumberOfArguments(method): 3
- i: 2, method_copyReturnType(method): v
- i: 2, j: 0, method_copyArgumentType(method, j): @
- i: 2, j: 1, method_copyArgumentType(method, j): :
- i: 2, j: 2, method_copyArgumentType(method, j): i
- i: 2, method_getTypeEncoding(method): v20 at 0:8i16
- i: 3, sel_getName(method_getName(method)): extendedInstanceMethod
- i: 3, class_respondsToSelector(c, method_getName(method)): 1
- i: 3, !strcmp(method_getName(method),sel_getName(method_getName(method))): 1
- i: 3, method_getName(method) == sel_getUid((char*) method_getName(method)): 1
- i: 3, class_getClassMethod(c, sel_getUid((char*) method_getName(method))) == method: 0
- i: 3, class_getInstanceMethod(c, sel_getUid((char*) method_getName(method))) == method: 1
- i: 3, numArgs = method_getNumberOfArguments(method): 2
- i: 3, method_copyReturnType(method): v
- i: 3, j: 0, method_copyArgumentType(method, j): @
- i: 3, j: 1, method_copyArgumentType(method, j): :
- i: 3, method_getTypeEncoding(method): v16 at 0:8
- i: 4, sel_getName(method_getName(method)): halfDynamicA
- i: 4, class_respondsToSelector(c, method_getName(method)): 1
- i: 4, !strcmp(method_getName(method),sel_getName(method_getName(method))): 1
- i: 4, method_getName(method) == sel_getUid((char*) method_getName(method)): 1
- i: 4, class_getClassMethod(c, sel_getUid((char*) method_getName(method))) == method: 0
- i: 4, class_getInstanceMethod(c, sel_getUid((char*) method_getName(method))) == method: 1
- i: 4, numArgs = method_getNumberOfArguments(method): 2
- i: 4, method_copyReturnType(method): i
- i: 4, j: 0, method_copyArgumentType(method, j): @
- i: 4, j: 1, method_copyArgumentType(method, j): :
- i: 4, method_getTypeEncoding(method): i16 at 0:8
- i: 5, sel_getName(method_getName(method)): halfDynamicB
- i: 5, class_respondsToSelector(c, method_getName(method)): 1
- i: 5, !strcmp(method_getName(method),sel_getName(method_getName(method))): 1
- i: 5, method_getName(method) == sel_getUid((char*) method_getName(method)): 1
- i: 5, class_getClassMethod(c, sel_getUid((char*) method_getName(method))) == method: 0
- i: 5, class_getInstanceMethod(c, sel_getUid((char*) method_getName(method))) == method: 1
- i: 5, numArgs = method_getNumberOfArguments(method): 2
- i: 5, method_copyReturnType(method): i
- i: 5, j: 0, method_copyArgumentType(method, j): @
- i: 5, j: 1, method_copyArgumentType(method, j): :
- i: 5, method_getTypeEncoding(method): i16 at 0:8
- i: 6, sel_getName(method_getName(method)): halfDynamicB:
- i: 6, class_respondsToSelector(c, method_getName(method)): 1
- i: 6, !strcmp(method_getName(method),sel_getName(method_getName(method))): 1
- i: 6, method_getName(method) == sel_getUid((char*) method_getName(method)): 1
- i: 6, class_getClassMethod(c, sel_getUid((char*) method_getName(method))) == method: 0
- i: 6, class_getInstanceMethod(c, sel_getUid((char*) method_getName(method))) == method: 1
- i: 6, numArgs = method_getNumberOfArguments(method): 3
- i: 6, method_copyReturnType(method): v
- i: 6, j: 0, method_copyArgumentType(method, j): @
- i: 6, j: 1, method_copyArgumentType(method, j): :
- i: 6, j: 2, method_copyArgumentType(method, j): i
- i: 6, method_getTypeEncoding(method): v20 at 0:8i16
- i: 7, sel_getName(method_getName(method)): instanceMethod
- i: 7, class_respondsToSelector(c, method_getName(method)): 1
- i: 7, !strcmp(method_getName(method),sel_getName(method_getName(method))): 1
- i: 7, method_getName(method) == sel_getUid((char*) method_getName(method)): 1
- i: 7, class_getClassMethod(c, sel_getUid((char*) method_getName(method))) == method: 0
- i: 7, class_getInstanceMethod(c, sel_getUid((char*) method_getName(method))) == method: 1
- i: 7, numArgs = method_getNumberOfArguments(method): 2
- i: 7, method_copyReturnType(method): v
- i: 7, j: 0, method_copyArgumentType(method, j): @
- i: 7, j: 1, method_copyArgumentType(method, j): :
- i: 7, method_getTypeEncoding(method): v16 at 0:8
- i: 8, sel_getName(method_getName(method)): optionalProtocolProperty
- i: 8, class_respondsToSelector(c, method_getName(method)): 1
- i: 8, !strcmp(method_getName(method),sel_getName(method_getName(method))): 1
- i: 8, method_getName(method) == sel_getUid((char*) method_getName(method)): 1
- i: 8, class_getClassMethod(c, sel_getUid((char*) method_getName(method))) == method: 0
- i: 8, class_getInstanceMethod(c, sel_getUid((char*) method_getName(method))) == method: 1
- i: 8, numArgs = method_getNumberOfArguments(method): 2
- i: 8, method_copyReturnType(method): i
- i: 8, j: 0, method_copyArgumentType(method, j): @
- i: 8, j: 1, method_copyArgumentType(method, j): :
- i: 8, method_getTypeEncoding(method): i16 at 0:8
- i: 9, sel_getName(method_getName(method)): requiredProtocolInstanceMethod
- i: 9, class_respondsToSelector(c, method_getName(method)): 1
- i: 9, !strcmp(method_getName(method),sel_getName(method_getName(method))): 1
- i: 9, method_getName(method) == sel_getUid((char*) method_getName(method)): 1
- i: 9, class_getClassMethod(c, sel_getUid((char*) method_getName(method))) == method: 0
- i: 9, class_getInstanceMethod(c, sel_getUid((char*) method_getName(method))) == method: 1
- i: 9, numArgs = method_getNumberOfArguments(method): 2
- i: 9, method_copyReturnType(method): v
- i: 9, j: 0, method_copyArgumentType(method, j): @
- i: 9, j: 1, method_copyArgumentType(method, j): :
- i: 9, method_getTypeEncoding(method): v16 at 0:8
- i: 10, sel_getName(method_getName(method)): requiredProtocolProperty
- i: 10, class_respondsToSelector(c, method_getName(method)): 1
- i: 10, !strcmp(method_getName(method),sel_getName(method_getName(method))): 1
- i: 10, method_getName(method) == sel_getUid((char*) method_getName(method)): 1
- i: 10, class_getClassMethod(c, sel_getUid((char*) method_getName(method))) == method: 0
- i: 10, class_getInstanceMethod(c, sel_getUid((char*) method_getName(method))) == method: 1
- i: 10, numArgs = method_getNumberOfArguments(method): 2
- i: 10, method_copyReturnType(method): i
- i: 10, j: 0, method_copyArgumentType(method, j): @
- i: 10, j: 1, method_copyArgumentType(method, j): :
- i: 10, method_getTypeEncoding(method): i16 at 0:8
- i: 11, sel_getName(method_getName(method)): setHalfDynamicA:
- i: 11, class_respondsToSelector(c, method_getName(method)): 1
- i: 11, !strcmp(method_getName(method),sel_getName(method_getName(method))): 1
- i: 11, method_getName(method) == sel_getUid((char*) method_getName(method)): 1
- i: 11, class_getClassMethod(c, sel_getUid((char*) method_getName(method))) == method: 0
- i: 11, class_getInstanceMethod(c, sel_getUid((char*) method_getName(method))) == method: 1
- i: 11, numArgs = method_getNumberOfArguments(method): 3
- i: 11, method_copyReturnType(method): v
- i: 11, j: 0, method_copyArgumentType(method, j): @
- i: 11, j: 1, method_copyArgumentType(method, j): :
- i: 11, j: 2, method_copyArgumentType(method, j): i
- i: 11, method_getTypeEncoding(method): v20 at 0:8i16
- i: 12, sel_getName(method_getName(method)): setHalfDynamicB:
- i: 12, class_respondsToSelector(c, method_getName(method)): 1
- i: 12, !strcmp(method_getName(method),sel_getName(method_getName(method))): 1
- i: 12, method_getName(method) == sel_getUid((char*) method_getName(method)): 1
- i: 12, class_getClassMethod(c, sel_getUid((char*) method_getName(method))) == method: 0
- i: 12, class_getInstanceMethod(c, sel_getUid((char*) method_getName(method))) == method: 1
- i: 12, numArgs = method_getNumberOfArguments(method): 3
- i: 12, method_copyReturnType(method): v
- i: 12, j: 0, method_copyArgumentType(method, j): @
- i: 12, j: 1, method_copyArgumentType(method, j): :
- i: 12, j: 2, method_copyArgumentType(method, j): i
- i: 12, method_getTypeEncoding(method): v20 at 0:8i16
- i: 13, sel_getName(method_getName(method)): setOptionalProtocolProperty:
- i: 13, class_respondsToSelector(c, method_getName(method)): 1
- i: 13, !strcmp(method_getName(method),sel_getName(method_getName(method))): 1
- i: 13, method_getName(method) == sel_getUid((char*) method_getName(method)): 1
- i: 13, class_getClassMethod(c, sel_getUid((char*) method_getName(method))) == method: 0
- i: 13, class_getInstanceMethod(c, sel_getUid((char*) method_getName(method))) == method: 1
- i: 13, numArgs = method_getNumberOfArguments(method): 3
- i: 13, method_copyReturnType(method): v
- i: 13, j: 0, method_copyArgumentType(method, j): @
- i: 13, j: 1, method_copyArgumentType(method, j): :
- i: 13, j: 2, method_copyArgumentType(method, j): i
- i: 13, method_getTypeEncoding(method): v20 at 0:8i16
- i: 14, sel_getName(method_getName(method)): setRequiredProtocolProperty:
- i: 14, class_respondsToSelector(c, method_getName(method)): 1
- i: 14, !strcmp(method_getName(method),sel_getName(method_getName(method))): 1
- i: 14, method_getName(method) == sel_getUid((char*) method_getName(method)): 1
- i: 14, class_getClassMethod(c, sel_getUid((char*) method_getName(method))) == method: 0
- i: 14, class_getInstanceMethod(c, sel_getUid((char*) method_getName(method))) == method: 1
- i: 14, numArgs = method_getNumberOfArguments(method): 3
- i: 14, method_copyReturnType(method): v
- i: 14, j: 0, method_copyArgumentType(method, j): @
- i: 14, j: 1, method_copyArgumentType(method, j): :
- i: 14, j: 2, method_copyArgumentType(method, j): i
- i: 14, method_getTypeEncoding(method): v20 at 0:8i16
- numProperties: 11
- i: 0, property_getName(property): Ptest_a
- i: 0, property_getAttributes(property): Ti,D
- i: 0, class_getProperty(c, property_getName(property)) == property: 1
- i: 1, property_getName(property): Ptest_b
- i: 1, property_getAttributes(property): T@,C,D
- i: 1, class_getProperty(c, property_getName(property)) == property: 1
- i: 2, property_getName(property): Ptest_c
- i: 2, property_getAttributes(property): T@,&,D
- i: 2, class_getProperty(c, property_getName(property)) == property: 1
- i: 3, property_getName(property): categoryProperty
- i: 3, property_getAttributes(property): Ti,D
- i: 3, class_getProperty(c, property_getName(property)) == property: 1
- i: 4, property_getName(property): dynamicNotReally
- i: 4, property_getAttributes(property): Ti,D
- i: 4, class_getProperty(c, property_getName(property)) == property: 1
- i: 5, property_getName(property): halfDynamicA
- i: 5, property_getAttributes(property): Ti,VhalfDynamicA
- i: 5, class_getProperty(c, property_getName(property)) == property: 1
- i: 6, property_getName(property): halfDynamicB
- i: 6, property_getAttributes(property): Ti,VhalfDynamicB
- i: 6, class_getProperty(c, property_getName(property)) == property: 1
- i: 7, property_getName(property): optionalProtocolProperty
- i: 7, property_getAttributes(property): Ti,VpublicVar
- i: 7, class_getProperty(c, property_getName(property)) == property: 1
- i: 8, property_getName(property): otherThings
- i: 8, property_getAttributes(property): Ti,D,SiSetOtherThings:
- i: 8, class_getProperty(c, property_getName(property)) == property: 1
- i: 9, property_getName(property): requiredProtocolProperty
- i: 9, property_getAttributes(property): Ti,VprivateVar
- i: 9, class_getProperty(c, property_getName(property)) == property: 1
- i: 10, property_getName(property): things
- i: 10, property_getAttributes(property): Ti,D,GiGetThings
- i: 10, class_getProperty(c, property_getName(property)) == property: 1
- numProtocols: 2
- i: 0, protocol_getName(protocol): CategoryProtocol
- i: 0, objc_getProtocol(protocol_getName(protocol))==protocol: 1
- i: 0, isRequired: 0, isInstance: 0, numProtocolMethods: 0
- i: 0, isRequired: 0, isInstance: 1, numProtocolMethods: 0
- i: 0, isRequired: 1, isInstance: 0, numProtocolMethods: 1
- i: 0, j: 0, sel_getName(methods[j].name): categoryClassMethod
- i: 0, j: 0, methods[j].types: v16 at 0:8
- i: 0, isRequired: 1, isInstance: 1, numProtocolMethods: 1
- i: 0, j: 0, sel_getName(methods[j].name): categoryInstanceMethod
- i: 0, j: 0, methods[j].types: v16 at 0:8
- i: 0, numProperties: 0
- i: 0, numSubProtocols: 0
- i: 1, protocol_getName(protocol): P
- i: 1, objc_getProtocol(protocol_getName(protocol))==protocol: 1
- i: 1, isRequired: 0, isInstance: 0, numProtocolMethods: 1
- i: 1, j: 0, sel_getName(methods[j].name): optionalProtocolClassMethod
- i: 1, j: 0, methods[j].types: v16 at 0:8
- i: 1, isRequired: 0, isInstance: 1, numProtocolMethods: 3
- i: 1, j: 0, sel_getName(methods[j].name): optionalProtocolInstanceMethod
- i: 1, j: 0, methods[j].types: v16 at 0:8
- i: 1, j: 1, sel_getName(methods[j].name): optionalProtocolProperty
- i: 1, j: 1, methods[j].types: i16 at 0:8
- i: 1, j: 2, sel_getName(methods[j].name): setOptionalProtocolProperty:
- i: 1, j: 2, methods[j].types: v20 at 0:8i16
- i: 1, isRequired: 1, isInstance: 0, numProtocolMethods: 1
- i: 1, j: 0, sel_getName(methods[j].name): requiredProtocolClassMethod
- i: 1, j: 0, methods[j].types: v16 at 0:8
- i: 1, isRequired: 1, isInstance: 1, numProtocolMethods: 3
- i: 1, j: 0, sel_getName(methods[j].name): requiredProtocolInstanceMethod
- i: 1, j: 0, methods[j].types: v16 at 0:8
- i: 1, j: 1, sel_getName(methods[j].name): requiredProtocolProperty
- i: 1, j: 1, methods[j].types: i16 at 0:8
- i: 1, j: 2, sel_getName(methods[j].name): setRequiredProtocolProperty:
- i: 1, j: 2, methods[j].types: v20 at 0:8i16
- i: 1, numProperties: 2
- i: 1, j: 0, property_getName(property): optionalProtocolProperty
- i: 1, j: 0, property_getAttributes(property): Ti
- i: 1, j: 0, isRequired: 0, isInstance: 0, protocol_getProperty(protocol, property_getName(property), isRequired, isInstance) == property: 0
- i: 1, j: 0, isRequired: 0, isInstance: 1, protocol_getProperty(protocol, property_getName(property), isRequired, isInstance) == property: 0
- i: 1, j: 0, isRequired: 1, isInstance: 0, protocol_getProperty(protocol, property_getName(property), isRequired, isInstance) == property: 0
- i: 1, j: 0, isRequired: 1, isInstance: 1, protocol_getProperty(protocol, property_getName(property), isRequired, isInstance) == property: 1
- i: 1, j: 1, property_getName(property): requiredProtocolProperty
- i: 1, j: 1, property_getAttributes(property): Ti
- i: 1, j: 1, isRequired: 0, isInstance: 0, protocol_getProperty(protocol, property_getName(property), isRequired, isInstance) == property: 0
- i: 1, j: 1, isRequired: 0, isInstance: 1, protocol_getProperty(protocol, property_getName(property), isRequired, isInstance) == property: 0
- i: 1, j: 1, isRequired: 1, isInstance: 0, protocol_getProperty(protocol, property_getName(property), isRequired, isInstance) == property: 0
- i: 1, j: 1, isRequired: 1, isInstance: 1, protocol_getProperty(protocol, property_getName(property), isRequired, isInstance) == property: 1
- i: 1, numSubProtocols: 1
- i: 1, j: 0, protocol_getName(protocol): P
- (int) class_getInstanceSize(c): 48
- class_getIvarLayout(c): (null)
- class_getSuperclass(c) != 0: 1
- c != 0: 1
- class_getName(c): NSObject
- object_getClassName(c): NSObject
- objc_getClass(class_getName(c)) == c: 1
- class_conformsToProtocol(c, @protocol(P)): 0
- numIvars: 1
- numMethods: 216
- numProperties: 0
- numProtocols: 1
- (int) class_getInstanceSize(c): 8
- class_getIvarLayout(c): (null)
- class_getSuperclass(c) != 0: 0
- class_getVersion(c): 0
- class_getWeakIvarLayout(c): (null)
- class_getVersion(c): 0
- class_getWeakIvarLayout(c): (null)
--- A metaclass --
-object_getClass([A class]) == objc_getMetaClass("A"): 1
- c != 0: 1
- class_getName(c): A
- object_getClassName(c): NSObject
- objc_getClass(class_getName(c)) == c: 0
- class_conformsToProtocol(c, @protocol(P)): 1
- numIvars: 0
- numMethods: 4
- i: 0, sel_getName(method_getName(method)): categoryClassMethod
- i: 0, class_respondsToSelector(c, method_getName(method)): 1
- i: 0, !strcmp(method_getName(method),sel_getName(method_getName(method))): 1
- i: 0, method_getName(method) == sel_getUid((char*) method_getName(method)): 1
- i: 0, class_getClassMethod(c, sel_getUid((char*) method_getName(method))) == method: 1
- i: 0, class_getInstanceMethod(c, sel_getUid((char*) method_getName(method))) == method: 1
- i: 0, numArgs = method_getNumberOfArguments(method): 2
- i: 0, method_copyReturnType(method): v
- i: 0, j: 0, method_copyArgumentType(method, j): @
- i: 0, j: 1, method_copyArgumentType(method, j): :
- i: 0, method_getTypeEncoding(method): v16 at 0:8
- i: 1, sel_getName(method_getName(method)): classMethod
- i: 1, class_respondsToSelector(c, method_getName(method)): 1
- i: 1, !strcmp(method_getName(method),sel_getName(method_getName(method))): 1
- i: 1, method_getName(method) == sel_getUid((char*) method_getName(method)): 1
- i: 1, class_getClassMethod(c, sel_getUid((char*) method_getName(method))) == method: 1
- i: 1, class_getInstanceMethod(c, sel_getUid((char*) method_getName(method))) == method: 1
- i: 1, numArgs = method_getNumberOfArguments(method): 2
- i: 1, method_copyReturnType(method): v
- i: 1, j: 0, method_copyArgumentType(method, j): @
- i: 1, j: 1, method_copyArgumentType(method, j): :
- i: 1, method_getTypeEncoding(method): v16 at 0:8
- i: 2, sel_getName(method_getName(method)): extendedClassMethod
- i: 2, class_respondsToSelector(c, method_getName(method)): 1
- i: 2, !strcmp(method_getName(method),sel_getName(method_getName(method))): 1
- i: 2, method_getName(method) == sel_getUid((char*) method_getName(method)): 1
- i: 2, class_getClassMethod(c, sel_getUid((char*) method_getName(method))) == method: 1
- i: 2, class_getInstanceMethod(c, sel_getUid((char*) method_getName(method))) == method: 1
- i: 2, numArgs = method_getNumberOfArguments(method): 2
- i: 2, method_copyReturnType(method): v
- i: 2, j: 0, method_copyArgumentType(method, j): @
- i: 2, j: 1, method_copyArgumentType(method, j): :
- i: 2, method_getTypeEncoding(method): v16 at 0:8
- i: 3, sel_getName(method_getName(method)): requiredProtocolClassMethod
- i: 3, class_respondsToSelector(c, method_getName(method)): 1
- i: 3, !strcmp(method_getName(method),sel_getName(method_getName(method))): 1
- i: 3, method_getName(method) == sel_getUid((char*) method_getName(method)): 1
- i: 3, class_getClassMethod(c, sel_getUid((char*) method_getName(method))) == method: 1
- i: 3, class_getInstanceMethod(c, sel_getUid((char*) method_getName(method))) == method: 1
- i: 3, numArgs = method_getNumberOfArguments(method): 2
- i: 3, method_copyReturnType(method): v
- i: 3, j: 0, method_copyArgumentType(method, j): @
- i: 3, j: 1, method_copyArgumentType(method, j): :
- i: 3, method_getTypeEncoding(method): v16 at 0:8
- numProperties: 0
- numProtocols: 2
- i: 0, protocol_getName(protocol): CategoryProtocol
- i: 0, objc_getProtocol(protocol_getName(protocol))==protocol: 1
- i: 0, isRequired: 0, isInstance: 0, numProtocolMethods: 0
- i: 0, isRequired: 0, isInstance: 1, numProtocolMethods: 0
- i: 0, isRequired: 1, isInstance: 0, numProtocolMethods: 1
- i: 0, j: 0, sel_getName(methods[j].name): categoryClassMethod
- i: 0, j: 0, methods[j].types: v16 at 0:8
- i: 0, isRequired: 1, isInstance: 1, numProtocolMethods: 1
- i: 0, j: 0, sel_getName(methods[j].name): categoryInstanceMethod
- i: 0, j: 0, methods[j].types: v16 at 0:8
- i: 0, numProperties: 0
- i: 0, numSubProtocols: 0
- i: 1, protocol_getName(protocol): P
- i: 1, objc_getProtocol(protocol_getName(protocol))==protocol: 1
- i: 1, isRequired: 0, isInstance: 0, numProtocolMethods: 1
- i: 1, j: 0, sel_getName(methods[j].name): optionalProtocolClassMethod
- i: 1, j: 0, methods[j].types: v16 at 0:8
- i: 1, isRequired: 0, isInstance: 1, numProtocolMethods: 3
- i: 1, j: 0, sel_getName(methods[j].name): optionalProtocolInstanceMethod
- i: 1, j: 0, methods[j].types: v16 at 0:8
- i: 1, j: 1, sel_getName(methods[j].name): optionalProtocolProperty
- i: 1, j: 1, methods[j].types: i16 at 0:8
- i: 1, j: 2, sel_getName(methods[j].name): setOptionalProtocolProperty:
- i: 1, j: 2, methods[j].types: v20 at 0:8i16
- i: 1, isRequired: 1, isInstance: 0, numProtocolMethods: 1
- i: 1, j: 0, sel_getName(methods[j].name): requiredProtocolClassMethod
- i: 1, j: 0, methods[j].types: v16 at 0:8
- i: 1, isRequired: 1, isInstance: 1, numProtocolMethods: 3
- i: 1, j: 0, sel_getName(methods[j].name): requiredProtocolInstanceMethod
- i: 1, j: 0, methods[j].types: v16 at 0:8
- i: 1, j: 1, sel_getName(methods[j].name): requiredProtocolProperty
- i: 1, j: 1, methods[j].types: i16 at 0:8
- i: 1, j: 2, sel_getName(methods[j].name): setRequiredProtocolProperty:
- i: 1, j: 2, methods[j].types: v20 at 0:8i16
- i: 1, numProperties: 2
- i: 1, j: 0, property_getName(property): optionalProtocolProperty
- i: 1, j: 0, property_getAttributes(property): Ti
- i: 1, j: 0, isRequired: 0, isInstance: 0, protocol_getProperty(protocol, property_getName(property), isRequired, isInstance) == property: 0
- i: 1, j: 0, isRequired: 0, isInstance: 1, protocol_getProperty(protocol, property_getName(property), isRequired, isInstance) == property: 0
- i: 1, j: 0, isRequired: 1, isInstance: 0, protocol_getProperty(protocol, property_getName(property), isRequired, isInstance) == property: 0
- i: 1, j: 0, isRequired: 1, isInstance: 1, protocol_getProperty(protocol, property_getName(property), isRequired, isInstance) == property: 1
- i: 1, j: 1, property_getName(property): requiredProtocolProperty
- i: 1, j: 1, property_getAttributes(property): Ti
- i: 1, j: 1, isRequired: 0, isInstance: 0, protocol_getProperty(protocol, property_getName(property), isRequired, isInstance) == property: 0
- i: 1, j: 1, isRequired: 0, isInstance: 1, protocol_getProperty(protocol, property_getName(property), isRequired, isInstance) == property: 0
- i: 1, j: 1, isRequired: 1, isInstance: 0, protocol_getProperty(protocol, property_getName(property), isRequired, isInstance) == property: 0
- i: 1, j: 1, isRequired: 1, isInstance: 1, protocol_getProperty(protocol, property_getName(property), isRequired, isInstance) == property: 1
- i: 1, numSubProtocols: 1
- i: 1, j: 0, protocol_getName(protocol): P
- (int) class_getInstanceSize(c): 40
- class_getIvarLayout(c): (null)
- class_getSuperclass(c) != 0: 1
- c != 0: 1
- class_getName(c): NSObject
- object_getClassName(c): NSObject
- objc_getClass(class_getName(c)) == c: 0
- class_conformsToProtocol(c, @protocol(P)): 0
- numIvars: 0
- numMethods: 85
- numProperties: 0
- numProtocols: 1
- (int) class_getInstanceSize(c): 40
- class_getIvarLayout(c): (null)
- class_getSuperclass(c) != 0: 1
- c != 0: 1
- class_getName(c): NSObject
- object_getClassName(c): NSObject
- objc_getClass(class_getName(c)) == c: 1
- class_conformsToProtocol(c, @protocol(P)): 0
- numIvars: 1
- numMethods: 216
- numProperties: 0
- numProtocols: 1
- (int) class_getInstanceSize(c): 8
- class_getIvarLayout(c): (null)
- class_getSuperclass(c) != 0: 0
- class_getVersion(c): 0
- class_getWeakIvarLayout(c): (null)
- class_getVersion(c): 7
- class_getWeakIvarLayout(c): (null)
- class_getVersion(c): 7
- class_getWeakIvarLayout(c): (null)
-numObjCProtocols: 21
-numClasses: 528
-exit 0
More information about the llvm-commits
mailing list