# REQUIRES: aarch64
# RUN: rm -rf %t; split-file %s %t && cd %t

## Create a dylib to link against(a64_file1.dylib) and merge categories in the main binary (file2_merge_a64.exe)
# RUN: llvm-mc -filetype=obj -triple=arm64-apple-macos -o a64_file1.o a64_file1.s
# RUN: %lld -arch arm64 a64_file1.o -o a64_file1.dylib -dylib

# RUN: llvm-mc -filetype=obj -triple=arm64-apple-macos -o a64_file2.o a64_file2.s
# RUN: %lld -arch arm64 -o a64_file2_no_merge.exe a64_file1.dylib a64_file2.o
# RUN: %lld -arch arm64 -o a64_file2_merge.exe -objc_category_merging a64_file1.dylib a64_file2.o

# RUN: llvm-objdump --objc-meta-data --macho a64_file2_no_merge.exe | FileCheck %s --check-prefixes=NO_MERGE_CATS
# RUN: llvm-objdump --objc-meta-data --macho a64_file2_merge.exe | FileCheck %s --check-prefixes=MERGE_CATS


MERGE_CATS:     __OBJC_$_CATEGORY_MyBaseClass_$_(Category02|Category03)
MERGE_CATS-NEXT:              name {{.*}} Category02|Category03
MERGE_CATS:           instanceMethods
MERGE_CATS-NEXT:           entsize 24
MERGE_CATS-NEXT:             count 4
MERGE_CATS-NEXT:              name {{.*}} class02InstanceMethod
MERGE_CATS-NEXT:             types {{.*}} v16@0:8
MERGE_CATS-NEXT:               imp -[MyBaseClass(Category02) class02InstanceMethod]
MERGE_CATS-NEXT:              name {{.*}} myProtocol02Method
MERGE_CATS-NEXT:             types {{.*}} v16@0:8
MERGE_CATS-NEXT:               imp -[MyBaseClass(Category02) myProtocol02Method]
MERGE_CATS-NEXT:              name {{.*}} class03InstanceMethod
MERGE_CATS-NEXT:             types {{.*}} v16@0:8
MERGE_CATS-NEXT:               imp -[MyBaseClass(Category03) class03InstanceMethod]
MERGE_CATS-NEXT:              name {{.*}} myProtocol03Method
MERGE_CATS-NEXT:             types {{.*}} v16@0:8
MERGE_CATS-NEXT:               imp -[MyBaseClass(Category03) myProtocol03Method]
MERGE_CATS-NEXT:      classMethods {{.*}}
MERGE_CATS-NEXT:           entsize 24
MERGE_CATS-NEXT:             count 4
MERGE_CATS-NEXT:              name {{.*}} class02ClassMethod
MERGE_CATS-NEXT:             types {{.*}} v16@0:8
MERGE_CATS-NEXT:               imp +[MyBaseClass(Category02) class02ClassMethod]
MERGE_CATS-NEXT:              name {{.*}} MyProtocol02Prop
MERGE_CATS-NEXT:             types {{.*}} i16@0:8
MERGE_CATS-NEXT:               imp +[MyBaseClass(Category02) MyProtocol02Prop]
MERGE_CATS-NEXT:              name {{.*}} class03ClassMethod
MERGE_CATS-NEXT:             types {{.*}} v16@0:8
MERGE_CATS-NEXT:               imp +[MyBaseClass(Category03) class03ClassMethod]
MERGE_CATS-NEXT:              name {{.*}} MyProtocol03Prop
MERGE_CATS-NEXT:             types {{.*}} i16@0:8
MERGE_CATS-NEXT:               imp +[MyBaseClass(Category03) MyProtocol03Prop]
MERGE_CATS-NEXT:         protocols
MERGE_CATS-NEXT:                      count 2
MERGE_CATS-NEXT:              list[0] {{.*}} (struct protocol_t *)
MERGE_CATS-NEXT:                  isa 0x0
MERGE_CATS-NEXT:                 name {{.*}} MyProtocol02
MERGE_CATS-NEXT:            protocols 0x0
MERGE_CATS-NEXT:          instanceMethods
MERGE_CATS-NEXT:               entsize 24
MERGE_CATS-NEXT:                 count 2
MERGE_CATS-NEXT:                  name {{.*}} myProtocol02Method
MERGE_CATS-NEXT:                 types {{.*}} v16@0:8
MERGE_CATS-NEXT:                   imp 0x0
MERGE_CATS-NEXT:                  name {{.*}} MyProtocol02Prop
MERGE_CATS-NEXT:                 types {{.*}} i16@0:8
MERGE_CATS-NEXT:                   imp 0x0
MERGE_CATS-NEXT:             classMethods
MERGE_CATS-NEXT:      optionalInstanceMethods 0x0
MERGE_CATS-NEXT:         optionalClassMethods 0x0
MERGE_CATS-NEXT:           instanceProperties {{.*}}
MERGE_CATS-NEXT:              list[1] {{.*}}
MERGE_CATS-NEXT:                  isa 0x0
MERGE_CATS-NEXT:                 name {{.*}} MyProtocol03
MERGE_CATS-NEXT:            protocols 0x0
MERGE_CATS-NEXT:          instanceMethods
MERGE_CATS-NEXT:               entsize 24
MERGE_CATS-NEXT:                 count 2
MERGE_CATS-NEXT:                  name {{.*}} myProtocol03Method
MERGE_CATS-NEXT:                 types {{.*}} v16@0:8
MERGE_CATS-NEXT:                   imp 0x0
MERGE_CATS-NEXT:                  name {{.*}} MyProtocol03Prop
MERGE_CATS-NEXT:                 types {{.*}} i16@0:8
MERGE_CATS-NEXT:                   imp 0x0
MERGE_CATS-NEXT:             classMethods 0x0
MERGE_CATS-NEXT:      optionalInstanceMethods 0x0
MERGE_CATS-NEXT:         optionalClassMethods 0x0
MERGE_CATS-NEXT:           instanceProperties {{.*}}
MERGE_CATS-NEXT:      instanceProperties
MERGE_CATS-NEXT:                    entsize 16
MERGE_CATS-NEXT:                      count 2
MERGE_CATS-NEXT:                 name {{.*}} MyProtocol02Prop
MERGE_CATS-NEXT:            attributes {{.*}} Ti,R,D
MERGE_CATS-NEXT:                 name {{.*}} MyProtocol03Prop
MERGE_CATS-NEXT:            attributes {{.*}} Ti,R,D


NO_MERGE_CATS-NOT: __OBJC_$_CATEGORY_MyBaseClass_$_(Category02|Category03)
NO_MERGE_CATS: __OBJC_$_CATEGORY_MyBaseClass_$_Category02
NO_MERGE_CATS: instanceMethods
NO_MERGE_CATS-NEXT: 24
NO_MERGE_CATS-NEXT: 2
NO_MERGE_CATS: classMethods
NO_MERGE_CATS-NEXT: 24
NO_MERGE_CATS-NEXT: 2


#--- a64_file1.s

## @protocol MyProtocol01
## - (void)myProtocol01Method;
## @property (nonatomic) int MyProtocol01Prop;
## @end
##
## __attribute__((objc_root_class))
## @interface MyBaseClass<MyProtocol01>
## - (void)baseInstanceMethod;
## - (void)myProtocol01Method;
## + (void)baseClassMethod;
## @end
##
## @implementation MyBaseClass
## @synthesize MyProtocol01Prop;
## - (void)baseInstanceMethod {}
## - (void)myProtocol01Method {}
## + (void)baseClassMethod {}
## @end
##
## void *_objc_empty_cache;

	.section	__TEXT,__text,regular,pure_instructions
	.p2align	2                               ; -- Begin function -[MyBaseClass baseInstanceMethod]
"-[MyBaseClass baseInstanceMethod]":    ; @"\01-[MyBaseClass baseInstanceMethod]"
	.cfi_startproc
; %bb.0:                                ; %entry
	ret
	.cfi_endproc
                                        ; -- End function
	.p2align	2                               ; -- Begin function -[MyBaseClass myProtocol01Method]
"-[MyBaseClass myProtocol01Method]":    ; @"\01-[MyBaseClass myProtocol01Method]"
	.cfi_startproc
; %bb.0:                                ; %entry
	ret
	.cfi_endproc
                                        ; -- End function
	.p2align	2                               ; -- Begin function +[MyBaseClass baseClassMethod]
"+[MyBaseClass baseClassMethod]":       ; @"\01+[MyBaseClass baseClassMethod]"
	.cfi_startproc
; %bb.0:                                ; %entry
	ret
	.cfi_endproc
                                        ; -- End function
	.p2align	2                               ; -- Begin function -[MyBaseClass MyProtocol01Prop]
"-[MyBaseClass MyProtocol01Prop]":      ; @"\01-[MyBaseClass MyProtocol01Prop]"
	.cfi_startproc
; %bb.0:                                ; %entry
Lloh0:
	adrp	x8, _OBJC_IVAR_$_MyBaseClass.MyProtocol01Prop@PAGE
Lloh1:
	ldrsw	x8, [x8, _OBJC_IVAR_$_MyBaseClass.MyProtocol01Prop@PAGEOFF]
	ldr	w0, [x0, x8]
	ret
	.loh AdrpLdr	Lloh0, Lloh1
	.cfi_endproc
                                        ; -- End function
	.p2align	2                               ; -- Begin function -[MyBaseClass setMyProtocol01Prop:]
"-[MyBaseClass setMyProtocol01Prop:]":  ; @"\01-[MyBaseClass setMyProtocol01Prop:]"
	.cfi_startproc
; %bb.0:                                ; %entry
Lloh2:
	adrp	x8, _OBJC_IVAR_$_MyBaseClass.MyProtocol01Prop@PAGE
Lloh3:
	ldrsw	x8, [x8, _OBJC_IVAR_$_MyBaseClass.MyProtocol01Prop@PAGEOFF]
	str	w2, [x0, x8]
	ret
	.loh AdrpLdr	Lloh2, Lloh3
	.cfi_endproc
                                        ; -- End function
	.private_extern	_OBJC_IVAR_$_MyBaseClass.MyProtocol01Prop ; @"OBJC_IVAR_$_MyBaseClass.MyProtocol01Prop"
	.section	__DATA,__objc_ivar
	.globl	_OBJC_IVAR_$_MyBaseClass.MyProtocol01Prop
	.p2align	2, 0x0
_OBJC_IVAR_$_MyBaseClass.MyProtocol01Prop:
	.long	0                               ; 0x0
	.section	__DATA,__objc_data
	.globl	_OBJC_CLASS_$_MyBaseClass       ; @"OBJC_CLASS_$_MyBaseClass"
	.p2align	3, 0x0
_OBJC_CLASS_$_MyBaseClass:
	.quad	_OBJC_METACLASS_$_MyBaseClass
	.quad	0
	.quad	__objc_empty_cache
	.quad	0
	.quad	__OBJC_CLASS_RO_$_MyBaseClass
	.globl	_OBJC_METACLASS_$_MyBaseClass   ; @"OBJC_METACLASS_$_MyBaseClass"
	.p2align	3, 0x0
_OBJC_METACLASS_$_MyBaseClass:
	.quad	_OBJC_METACLASS_$_MyBaseClass
	.quad	_OBJC_CLASS_$_MyBaseClass
	.quad	__objc_empty_cache
	.quad	0
	.quad	__OBJC_METACLASS_RO_$_MyBaseClass
	.section	__TEXT,__objc_classname,cstring_literals
l_OBJC_CLASS_NAME_:                     ; @OBJC_CLASS_NAME_
	.asciz	"MyBaseClass"
	.section	__TEXT,__objc_methname,cstring_literals
l_OBJC_METH_VAR_NAME_:                  ; @OBJC_METH_VAR_NAME_
	.asciz	"baseClassMethod"
	.section	__TEXT,__objc_methtype,cstring_literals
l_OBJC_METH_VAR_TYPE_:                  ; @OBJC_METH_VAR_TYPE_
	.asciz	"v16@0:8"
	.section	__DATA,__objc_const
	.p2align	3, 0x0                          ; @"_OBJC_$_CLASS_METHODS_MyBaseClass"
__OBJC_$_CLASS_METHODS_MyBaseClass:
	.long	24                              ; 0x18
	.long	1                               ; 0x1
	.quad	l_OBJC_METH_VAR_NAME_
	.quad	l_OBJC_METH_VAR_TYPE_
	.quad	"+[MyBaseClass baseClassMethod]"
	.section	__TEXT,__objc_classname,cstring_literals
l_OBJC_CLASS_NAME_.1:                   ; @OBJC_CLASS_NAME_.1
	.asciz	"MyProtocol01"
	.section	__TEXT,__objc_methname,cstring_literals
l_OBJC_METH_VAR_NAME_.2:                ; @OBJC_METH_VAR_NAME_.2
	.asciz	"myProtocol01Method"
l_OBJC_METH_VAR_NAME_.3:                ; @OBJC_METH_VAR_NAME_.3
	.asciz	"MyProtocol01Prop"
	.section	__TEXT,__objc_methtype,cstring_literals
l_OBJC_METH_VAR_TYPE_.4:                ; @OBJC_METH_VAR_TYPE_.4
	.asciz	"i16@0:8"
	.section	__TEXT,__objc_methname,cstring_literals
l_OBJC_METH_VAR_NAME_.5:                ; @OBJC_METH_VAR_NAME_.5
	.asciz	"setMyProtocol01Prop:"
	.section	__TEXT,__objc_methtype,cstring_literals
l_OBJC_METH_VAR_TYPE_.6:                ; @OBJC_METH_VAR_TYPE_.6
	.asciz	"v20@0:8i16"
	.section	__DATA,__objc_const
	.p2align	3, 0x0                          ; @"_OBJC_$_PROTOCOL_INSTANCE_METHODS_MyProtocol01"
__OBJC_$_PROTOCOL_INSTANCE_METHODS_MyProtocol01:
	.long	24                              ; 0x18
	.long	3                               ; 0x3
	.quad	l_OBJC_METH_VAR_NAME_.2
	.quad	l_OBJC_METH_VAR_TYPE_
	.quad	0
	.quad	l_OBJC_METH_VAR_NAME_.3
	.quad	l_OBJC_METH_VAR_TYPE_.4
	.quad	0
	.quad	l_OBJC_METH_VAR_NAME_.5
	.quad	l_OBJC_METH_VAR_TYPE_.6
	.quad	0
	.section	__TEXT,__objc_methname,cstring_literals
l_OBJC_PROP_NAME_ATTR_:                 ; @OBJC_PROP_NAME_ATTR_
	.asciz	"MyProtocol01Prop"
l_OBJC_PROP_NAME_ATTR_.7:               ; @OBJC_PROP_NAME_ATTR_.7
	.asciz	"Ti,N"
	.section	__DATA,__objc_const
	.p2align	3, 0x0                          ; @"_OBJC_$_PROP_LIST_MyProtocol01"
__OBJC_$_PROP_LIST_MyProtocol01:
	.long	16                              ; 0x10
	.long	1                               ; 0x1
	.quad	l_OBJC_PROP_NAME_ATTR_
	.quad	l_OBJC_PROP_NAME_ATTR_.7
	.p2align	3, 0x0                          ; @"_OBJC_$_PROTOCOL_METHOD_TYPES_MyProtocol01"
__OBJC_$_PROTOCOL_METHOD_TYPES_MyProtocol01:
	.quad	l_OBJC_METH_VAR_TYPE_
	.quad	l_OBJC_METH_VAR_TYPE_.4
	.quad	l_OBJC_METH_VAR_TYPE_.6
	.private_extern	__OBJC_PROTOCOL_$_MyProtocol01 ; @"_OBJC_PROTOCOL_$_MyProtocol01"
	.section	__DATA,__data
	.globl	__OBJC_PROTOCOL_$_MyProtocol01
	.weak_definition	__OBJC_PROTOCOL_$_MyProtocol01
	.p2align	3, 0x0
__OBJC_PROTOCOL_$_MyProtocol01:
	.quad	0
	.quad	l_OBJC_CLASS_NAME_.1
	.quad	0
	.quad	__OBJC_$_PROTOCOL_INSTANCE_METHODS_MyProtocol01
	.quad	0
	.quad	0
	.quad	0
	.quad	__OBJC_$_PROP_LIST_MyProtocol01
	.long	96                              ; 0x60
	.long	0                               ; 0x0
	.quad	__OBJC_$_PROTOCOL_METHOD_TYPES_MyProtocol01
	.quad	0
	.quad	0
	.private_extern	__OBJC_LABEL_PROTOCOL_$_MyProtocol01 ; @"_OBJC_LABEL_PROTOCOL_$_MyProtocol01"
	.section	__DATA,__objc_protolist,coalesced,no_dead_strip
	.globl	__OBJC_LABEL_PROTOCOL_$_MyProtocol01
	.weak_definition	__OBJC_LABEL_PROTOCOL_$_MyProtocol01
	.p2align	3, 0x0
__OBJC_LABEL_PROTOCOL_$_MyProtocol01:
	.quad	__OBJC_PROTOCOL_$_MyProtocol01
	.section	__DATA,__objc_const
	.p2align	3, 0x0                          ; @"_OBJC_CLASS_PROTOCOLS_$_MyBaseClass"
__OBJC_CLASS_PROTOCOLS_$_MyBaseClass:
	.quad	1                               ; 0x1
	.quad	__OBJC_PROTOCOL_$_MyProtocol01
	.quad	0
	.p2align	3, 0x0                          ; @"_OBJC_METACLASS_RO_$_MyBaseClass"
__OBJC_METACLASS_RO_$_MyBaseClass:
	.long	3                               ; 0x3
	.long	40                              ; 0x28
	.long	40                              ; 0x28
	.space	4
	.quad	0
	.quad	l_OBJC_CLASS_NAME_
	.quad	__OBJC_$_CLASS_METHODS_MyBaseClass
	.quad	__OBJC_CLASS_PROTOCOLS_$_MyBaseClass
	.quad	0
	.quad	0
	.quad	0
	.section	__TEXT,__objc_methname,cstring_literals
l_OBJC_METH_VAR_NAME_.8:                ; @OBJC_METH_VAR_NAME_.8
	.asciz	"baseInstanceMethod"
	.section	__DATA,__objc_const
	.p2align	3, 0x0                          ; @"_OBJC_$_INSTANCE_METHODS_MyBaseClass"
__OBJC_$_INSTANCE_METHODS_MyBaseClass:
	.long	24                              ; 0x18
	.long	4                               ; 0x4
	.quad	l_OBJC_METH_VAR_NAME_.8
	.quad	l_OBJC_METH_VAR_TYPE_
	.quad	"-[MyBaseClass baseInstanceMethod]"
	.quad	l_OBJC_METH_VAR_NAME_.2
	.quad	l_OBJC_METH_VAR_TYPE_
	.quad	"-[MyBaseClass myProtocol01Method]"
	.quad	l_OBJC_METH_VAR_NAME_.3
	.quad	l_OBJC_METH_VAR_TYPE_.4
	.quad	"-[MyBaseClass MyProtocol01Prop]"
	.quad	l_OBJC_METH_VAR_NAME_.5
	.quad	l_OBJC_METH_VAR_TYPE_.6
	.quad	"-[MyBaseClass setMyProtocol01Prop:]"
	.section	__TEXT,__objc_methtype,cstring_literals
l_OBJC_METH_VAR_TYPE_.9:                ; @OBJC_METH_VAR_TYPE_.9
	.asciz	"i"
	.section	__DATA,__objc_const
	.p2align	3, 0x0                          ; @"_OBJC_$_INSTANCE_VARIABLES_MyBaseClass"
__OBJC_$_INSTANCE_VARIABLES_MyBaseClass:
	.long	32                              ; 0x20
	.long	1                               ; 0x1
	.quad	_OBJC_IVAR_$_MyBaseClass.MyProtocol01Prop
	.quad	l_OBJC_METH_VAR_NAME_.3
	.quad	l_OBJC_METH_VAR_TYPE_.9
	.long	2                               ; 0x2
	.long	4                               ; 0x4
	.section	__TEXT,__objc_methname,cstring_literals
l_OBJC_PROP_NAME_ATTR_.10:              ; @OBJC_PROP_NAME_ATTR_.10
	.asciz	"Ti,N,VMyProtocol01Prop"
	.section	__DATA,__objc_const
	.p2align	3, 0x0                          ; @"_OBJC_$_PROP_LIST_MyBaseClass"
__OBJC_$_PROP_LIST_MyBaseClass:
	.long	16                              ; 0x10
	.long	1                               ; 0x1
	.quad	l_OBJC_PROP_NAME_ATTR_
	.quad	l_OBJC_PROP_NAME_ATTR_.10
	.p2align	3, 0x0                          ; @"_OBJC_CLASS_RO_$_MyBaseClass"
__OBJC_CLASS_RO_$_MyBaseClass:
	.long	2                               ; 0x2
	.long	0                               ; 0x0
	.long	4                               ; 0x4
	.space	4
	.quad	0
	.quad	l_OBJC_CLASS_NAME_
	.quad	__OBJC_$_INSTANCE_METHODS_MyBaseClass
	.quad	__OBJC_CLASS_PROTOCOLS_$_MyBaseClass
	.quad	__OBJC_$_INSTANCE_VARIABLES_MyBaseClass
	.quad	0
	.quad	__OBJC_$_PROP_LIST_MyBaseClass
	.globl	__objc_empty_cache              ; @_objc_empty_cache
.zerofill __DATA,__common,__objc_empty_cache,8,3
	.section	__DATA,__objc_classlist,regular,no_dead_strip
	.p2align	3, 0x0                          ; @"OBJC_LABEL_CLASS_$"
l_OBJC_LABEL_CLASS_$:
	.quad	_OBJC_CLASS_$_MyBaseClass
	.no_dead_strip	__OBJC_LABEL_PROTOCOL_$_MyProtocol01
	.no_dead_strip	__OBJC_PROTOCOL_$_MyProtocol01
	.section	__DATA,__objc_imageinfo,regular,no_dead_strip
L_OBJC_IMAGE_INFO:
	.long	0
	.long	96
.subsections_via_symbols


#--- a64_file2.s

## @protocol MyProtocol01
## - (void)myProtocol01Method;
## @end
##
## @protocol MyProtocol02
## - (void)myProtocol02Method;
## @property(readonly) int MyProtocol02Prop;
## @end
##
## @protocol MyProtocol03
## - (void)myProtocol03Method;
## @property(readonly) int MyProtocol03Prop;
## @end
##
##
## __attribute__((objc_root_class))
## @interface MyBaseClass<MyProtocol01>
## - (void)baseInstanceMethod;
## - (void)myProtocol01Method;
## + (void)baseClassMethod;
## @end
##
##
##
## @interface MyBaseClass(Category02)<MyProtocol02>
## - (void)class02InstanceMethod;
## - (void)myProtocol02Method;
## + (void)class02ClassMethod;
## + (int)MyProtocol02Prop;
## @end
##
## @implementation MyBaseClass(Category02)
## - (void)class02InstanceMethod {}
## - (void)myProtocol02Method {}
## + (void)class02ClassMethod {}
## + (int)MyProtocol02Prop { return 0;}
## @dynamic MyProtocol02Prop;
## @end
##
## @interface MyBaseClass(Category03)<MyProtocol03>
## - (void)class03InstanceMethod;
## - (void)myProtocol03Method;
## + (void)class03ClassMethod;
## + (int)MyProtocol03Prop;
## @end
##
## @implementation MyBaseClass(Category03)
## - (void)class03InstanceMethod {}
## - (void)myProtocol03Method {}
## + (void)class03ClassMethod {}
## + (int)MyProtocol03Prop { return 0;}
## @dynamic MyProtocol03Prop;
## @end
##
## int main() {
##     return 0;
## }


	.section	__TEXT,__text,regular,pure_instructions
	.p2align	2                               ; -- Begin function -[MyBaseClass(Category02) class02InstanceMethod]
"-[MyBaseClass(Category02) class02InstanceMethod]": ; @"\01-[MyBaseClass(Category02) class02InstanceMethod]"
	.cfi_startproc
; %bb.0:                                ; %entry
	ret
	.cfi_endproc
                                        ; -- End function
	.p2align	2                               ; -- Begin function -[MyBaseClass(Category02) myProtocol02Method]
"-[MyBaseClass(Category02) myProtocol02Method]": ; @"\01-[MyBaseClass(Category02) myProtocol02Method]"
	.cfi_startproc
; %bb.0:                                ; %entry
	ret
	.cfi_endproc
                                        ; -- End function
	.p2align	2                               ; -- Begin function +[MyBaseClass(Category02) class02ClassMethod]
"+[MyBaseClass(Category02) class02ClassMethod]": ; @"\01+[MyBaseClass(Category02) class02ClassMethod]"
	.cfi_startproc
; %bb.0:                                ; %entry
	ret
	.cfi_endproc
                                        ; -- End function
	.p2align	2                               ; -- Begin function +[MyBaseClass(Category02) MyProtocol02Prop]
"+[MyBaseClass(Category02) MyProtocol02Prop]": ; @"\01+[MyBaseClass(Category02) MyProtocol02Prop]"
	.cfi_startproc
; %bb.0:                                ; %entry
	b	_OUTLINED_FUNCTION_0
	.cfi_endproc
                                        ; -- End function
	.p2align	2                               ; -- Begin function -[MyBaseClass(Category03) class03InstanceMethod]
"-[MyBaseClass(Category03) class03InstanceMethod]": ; @"\01-[MyBaseClass(Category03) class03InstanceMethod]"
	.cfi_startproc
; %bb.0:                                ; %entry
	ret
	.cfi_endproc
                                        ; -- End function
	.p2align	2                               ; -- Begin function -[MyBaseClass(Category03) myProtocol03Method]
"-[MyBaseClass(Category03) myProtocol03Method]": ; @"\01-[MyBaseClass(Category03) myProtocol03Method]"
	.cfi_startproc
; %bb.0:                                ; %entry
	ret
	.cfi_endproc
                                        ; -- End function
	.p2align	2                               ; -- Begin function +[MyBaseClass(Category03) class03ClassMethod]
"+[MyBaseClass(Category03) class03ClassMethod]": ; @"\01+[MyBaseClass(Category03) class03ClassMethod]"
	.cfi_startproc
; %bb.0:                                ; %entry
	ret
	.cfi_endproc
                                        ; -- End function
	.p2align	2                               ; -- Begin function +[MyBaseClass(Category03) MyProtocol03Prop]
"+[MyBaseClass(Category03) MyProtocol03Prop]": ; @"\01+[MyBaseClass(Category03) MyProtocol03Prop]"
	.cfi_startproc
; %bb.0:                                ; %entry
	b	_OUTLINED_FUNCTION_0
	.cfi_endproc
                                        ; -- End function
	.globl	_main                           ; -- Begin function main
	.p2align	2
_main:                                  ; @main
	.cfi_startproc
; %bb.0:                                ; %entry
	b	_OUTLINED_FUNCTION_0
	.cfi_endproc
                                        ; -- End function
	.p2align	2                               ; -- Begin function OUTLINED_FUNCTION_0
_OUTLINED_FUNCTION_0:                   ; @OUTLINED_FUNCTION_0 Tail Call
	.cfi_startproc
; %bb.0:
	mov	w0, #0
	ret
	.cfi_endproc
                                        ; -- End function
	.section	__TEXT,__objc_classname,cstring_literals
l_OBJC_CLASS_NAME_:                     ; @OBJC_CLASS_NAME_
	.asciz	"Category02"
	.section	__TEXT,__objc_methname,cstring_literals
l_OBJC_METH_VAR_NAME_:                  ; @OBJC_METH_VAR_NAME_
	.asciz	"class02InstanceMethod"
	.section	__TEXT,__objc_methtype,cstring_literals
l_OBJC_METH_VAR_TYPE_:                  ; @OBJC_METH_VAR_TYPE_
	.asciz	"v16@0:8"
	.section	__TEXT,__objc_methname,cstring_literals
l_OBJC_METH_VAR_NAME_.1:                ; @OBJC_METH_VAR_NAME_.1
	.asciz	"myProtocol02Method"
	.section	__DATA,__objc_const
	.p2align	3, 0x0                          ; @"_OBJC_$_CATEGORY_INSTANCE_METHODS_MyBaseClass_$_Category02"
__OBJC_$_CATEGORY_INSTANCE_METHODS_MyBaseClass_$_Category02:
	.long	24                              ; 0x18
	.long	2                               ; 0x2
	.quad	l_OBJC_METH_VAR_NAME_
	.quad	l_OBJC_METH_VAR_TYPE_
	.quad	"-[MyBaseClass(Category02) class02InstanceMethod]"
	.quad	l_OBJC_METH_VAR_NAME_.1
	.quad	l_OBJC_METH_VAR_TYPE_
	.quad	"-[MyBaseClass(Category02) myProtocol02Method]"
	.section	__TEXT,__objc_methname,cstring_literals
l_OBJC_METH_VAR_NAME_.2:                ; @OBJC_METH_VAR_NAME_.2
	.asciz	"class02ClassMethod"
l_OBJC_METH_VAR_NAME_.3:                ; @OBJC_METH_VAR_NAME_.3
	.asciz	"MyProtocol02Prop"
	.section	__TEXT,__objc_methtype,cstring_literals
l_OBJC_METH_VAR_TYPE_.4:                ; @OBJC_METH_VAR_TYPE_.4
	.asciz	"i16@0:8"
	.section	__DATA,__objc_const
	.p2align	3, 0x0                          ; @"_OBJC_$_CATEGORY_CLASS_METHODS_MyBaseClass_$_Category02"
__OBJC_$_CATEGORY_CLASS_METHODS_MyBaseClass_$_Category02:
	.long	24                              ; 0x18
	.long	2                               ; 0x2
	.quad	l_OBJC_METH_VAR_NAME_.2
	.quad	l_OBJC_METH_VAR_TYPE_
	.quad	"+[MyBaseClass(Category02) class02ClassMethod]"
	.quad	l_OBJC_METH_VAR_NAME_.3
	.quad	l_OBJC_METH_VAR_TYPE_.4
	.quad	"+[MyBaseClass(Category02) MyProtocol02Prop]"
	.section	__TEXT,__objc_classname,cstring_literals
l_OBJC_CLASS_NAME_.5:                   ; @OBJC_CLASS_NAME_.5
	.asciz	"MyProtocol02"
	.section	__DATA,__objc_const
	.p2align	3, 0x0                          ; @"_OBJC_$_PROTOCOL_INSTANCE_METHODS_MyProtocol02"
__OBJC_$_PROTOCOL_INSTANCE_METHODS_MyProtocol02:
	.long	24                              ; 0x18
	.long	2                               ; 0x2
	.quad	l_OBJC_METH_VAR_NAME_.1
	.quad	l_OBJC_METH_VAR_TYPE_
	.quad	0
	.quad	l_OBJC_METH_VAR_NAME_.3
	.quad	l_OBJC_METH_VAR_TYPE_.4
	.quad	0
	.section	__TEXT,__objc_methname,cstring_literals
l_OBJC_PROP_NAME_ATTR_:                 ; @OBJC_PROP_NAME_ATTR_
	.asciz	"MyProtocol02Prop"
l_OBJC_PROP_NAME_ATTR_.6:               ; @OBJC_PROP_NAME_ATTR_.6
	.asciz	"Ti,R"
	.section	__DATA,__objc_const
	.p2align	3, 0x0                          ; @"_OBJC_$_PROP_LIST_MyProtocol02"
__OBJC_$_PROP_LIST_MyProtocol02:
	.long	16                              ; 0x10
	.long	1                               ; 0x1
	.quad	l_OBJC_PROP_NAME_ATTR_
	.quad	l_OBJC_PROP_NAME_ATTR_.6
	.p2align	3, 0x0                          ; @"_OBJC_$_PROTOCOL_METHOD_TYPES_MyProtocol02"
__OBJC_$_PROTOCOL_METHOD_TYPES_MyProtocol02:
	.quad	l_OBJC_METH_VAR_TYPE_
	.quad	l_OBJC_METH_VAR_TYPE_.4
	.private_extern	__OBJC_PROTOCOL_$_MyProtocol02 ; @"_OBJC_PROTOCOL_$_MyProtocol02"
	.section	__DATA,__data
	.globl	__OBJC_PROTOCOL_$_MyProtocol02
	.weak_definition	__OBJC_PROTOCOL_$_MyProtocol02
	.p2align	3, 0x0
__OBJC_PROTOCOL_$_MyProtocol02:
	.quad	0
	.quad	l_OBJC_CLASS_NAME_.5
	.quad	0
	.quad	__OBJC_$_PROTOCOL_INSTANCE_METHODS_MyProtocol02
	.quad	0
	.quad	0
	.quad	0
	.quad	__OBJC_$_PROP_LIST_MyProtocol02
	.long	96                              ; 0x60
	.long	0                               ; 0x0
	.quad	__OBJC_$_PROTOCOL_METHOD_TYPES_MyProtocol02
	.quad	0
	.quad	0
	.private_extern	__OBJC_LABEL_PROTOCOL_$_MyProtocol02 ; @"_OBJC_LABEL_PROTOCOL_$_MyProtocol02"
	.section	__DATA,__objc_protolist,coalesced,no_dead_strip
	.globl	__OBJC_LABEL_PROTOCOL_$_MyProtocol02
	.weak_definition	__OBJC_LABEL_PROTOCOL_$_MyProtocol02
	.p2align	3, 0x0
__OBJC_LABEL_PROTOCOL_$_MyProtocol02:
	.quad	__OBJC_PROTOCOL_$_MyProtocol02
	.section	__DATA,__objc_const
	.p2align	3, 0x0                          ; @"_OBJC_CATEGORY_PROTOCOLS_$_MyBaseClass_$_Category02"
__OBJC_CATEGORY_PROTOCOLS_$_MyBaseClass_$_Category02:
	.quad	1                               ; 0x1
	.quad	__OBJC_PROTOCOL_$_MyProtocol02
	.quad	0
	.section	__TEXT,__objc_methname,cstring_literals
l_OBJC_PROP_NAME_ATTR_.7:               ; @OBJC_PROP_NAME_ATTR_.7
	.asciz	"Ti,R,D"
	.section	__DATA,__objc_const
	.p2align	3, 0x0                          ; @"_OBJC_$_PROP_LIST_MyBaseClass_$_Category02"
__OBJC_$_PROP_LIST_MyBaseClass_$_Category02:
	.long	16                              ; 0x10
	.long	1                               ; 0x1
	.quad	l_OBJC_PROP_NAME_ATTR_
	.quad	l_OBJC_PROP_NAME_ATTR_.7
	.p2align	3, 0x0                          ; @"_OBJC_$_CATEGORY_MyBaseClass_$_Category02"
__OBJC_$_CATEGORY_MyBaseClass_$_Category02:
	.quad	l_OBJC_CLASS_NAME_
	.quad	_OBJC_CLASS_$_MyBaseClass
	.quad	__OBJC_$_CATEGORY_INSTANCE_METHODS_MyBaseClass_$_Category02
	.quad	__OBJC_$_CATEGORY_CLASS_METHODS_MyBaseClass_$_Category02
	.quad	__OBJC_CATEGORY_PROTOCOLS_$_MyBaseClass_$_Category02
	.quad	__OBJC_$_PROP_LIST_MyBaseClass_$_Category02
	.quad	0
	.long	64                              ; 0x40
	.space	4
	.section	__TEXT,__objc_classname,cstring_literals
l_OBJC_CLASS_NAME_.8:                   ; @OBJC_CLASS_NAME_.8
	.asciz	"Category03"
	.section	__TEXT,__objc_methname,cstring_literals
l_OBJC_METH_VAR_NAME_.9:                ; @OBJC_METH_VAR_NAME_.9
	.asciz	"class03InstanceMethod"
l_OBJC_METH_VAR_NAME_.10:               ; @OBJC_METH_VAR_NAME_.10
	.asciz	"myProtocol03Method"
	.section	__DATA,__objc_const
	.p2align	3, 0x0                          ; @"_OBJC_$_CATEGORY_INSTANCE_METHODS_MyBaseClass_$_Category03"
__OBJC_$_CATEGORY_INSTANCE_METHODS_MyBaseClass_$_Category03:
	.long	24                              ; 0x18
	.long	2                               ; 0x2
	.quad	l_OBJC_METH_VAR_NAME_.9
	.quad	l_OBJC_METH_VAR_TYPE_
	.quad	"-[MyBaseClass(Category03) class03InstanceMethod]"
	.quad	l_OBJC_METH_VAR_NAME_.10
	.quad	l_OBJC_METH_VAR_TYPE_
	.quad	"-[MyBaseClass(Category03) myProtocol03Method]"
	.section	__TEXT,__objc_methname,cstring_literals
l_OBJC_METH_VAR_NAME_.11:               ; @OBJC_METH_VAR_NAME_.11
	.asciz	"class03ClassMethod"
l_OBJC_METH_VAR_NAME_.12:               ; @OBJC_METH_VAR_NAME_.12
	.asciz	"MyProtocol03Prop"
	.section	__DATA,__objc_const
	.p2align	3, 0x0                          ; @"_OBJC_$_CATEGORY_CLASS_METHODS_MyBaseClass_$_Category03"
__OBJC_$_CATEGORY_CLASS_METHODS_MyBaseClass_$_Category03:
	.long	24                              ; 0x18
	.long	2                               ; 0x2
	.quad	l_OBJC_METH_VAR_NAME_.11
	.quad	l_OBJC_METH_VAR_TYPE_
	.quad	"+[MyBaseClass(Category03) class03ClassMethod]"
	.quad	l_OBJC_METH_VAR_NAME_.12
	.quad	l_OBJC_METH_VAR_TYPE_.4
	.quad	"+[MyBaseClass(Category03) MyProtocol03Prop]"
	.section	__TEXT,__objc_classname,cstring_literals
l_OBJC_CLASS_NAME_.13:                  ; @OBJC_CLASS_NAME_.13
	.asciz	"MyProtocol03"
	.section	__DATA,__objc_const
	.p2align	3, 0x0                          ; @"_OBJC_$_PROTOCOL_INSTANCE_METHODS_MyProtocol03"
__OBJC_$_PROTOCOL_INSTANCE_METHODS_MyProtocol03:
	.long	24                              ; 0x18
	.long	2                               ; 0x2
	.quad	l_OBJC_METH_VAR_NAME_.10
	.quad	l_OBJC_METH_VAR_TYPE_
	.quad	0
	.quad	l_OBJC_METH_VAR_NAME_.12
	.quad	l_OBJC_METH_VAR_TYPE_.4
	.quad	0
	.section	__TEXT,__objc_methname,cstring_literals
l_OBJC_PROP_NAME_ATTR_.14:              ; @OBJC_PROP_NAME_ATTR_.14
	.asciz	"MyProtocol03Prop"
	.section	__DATA,__objc_const
	.p2align	3, 0x0                          ; @"_OBJC_$_PROP_LIST_MyProtocol03"
__OBJC_$_PROP_LIST_MyProtocol03:
	.long	16                              ; 0x10
	.long	1                               ; 0x1
	.quad	l_OBJC_PROP_NAME_ATTR_.14
	.quad	l_OBJC_PROP_NAME_ATTR_.6
	.p2align	3, 0x0                          ; @"_OBJC_$_PROTOCOL_METHOD_TYPES_MyProtocol03"
__OBJC_$_PROTOCOL_METHOD_TYPES_MyProtocol03:
	.quad	l_OBJC_METH_VAR_TYPE_
	.quad	l_OBJC_METH_VAR_TYPE_.4
	.private_extern	__OBJC_PROTOCOL_$_MyProtocol03 ; @"_OBJC_PROTOCOL_$_MyProtocol03"
	.section	__DATA,__data
	.globl	__OBJC_PROTOCOL_$_MyProtocol03
	.weak_definition	__OBJC_PROTOCOL_$_MyProtocol03
	.p2align	3, 0x0
__OBJC_PROTOCOL_$_MyProtocol03:
	.quad	0
	.quad	l_OBJC_CLASS_NAME_.13
	.quad	0
	.quad	__OBJC_$_PROTOCOL_INSTANCE_METHODS_MyProtocol03
	.quad	0
	.quad	0
	.quad	0
	.quad	__OBJC_$_PROP_LIST_MyProtocol03
	.long	96                              ; 0x60
	.long	0                               ; 0x0
	.quad	__OBJC_$_PROTOCOL_METHOD_TYPES_MyProtocol03
	.quad	0
	.quad	0
	.private_extern	__OBJC_LABEL_PROTOCOL_$_MyProtocol03 ; @"_OBJC_LABEL_PROTOCOL_$_MyProtocol03"
	.section	__DATA,__objc_protolist,coalesced,no_dead_strip
	.globl	__OBJC_LABEL_PROTOCOL_$_MyProtocol03
	.weak_definition	__OBJC_LABEL_PROTOCOL_$_MyProtocol03
	.p2align	3, 0x0
__OBJC_LABEL_PROTOCOL_$_MyProtocol03:
	.quad	__OBJC_PROTOCOL_$_MyProtocol03
	.section	__DATA,__objc_const
	.p2align	3, 0x0                          ; @"_OBJC_CATEGORY_PROTOCOLS_$_MyBaseClass_$_Category03"
__OBJC_CATEGORY_PROTOCOLS_$_MyBaseClass_$_Category03:
	.quad	1                               ; 0x1
	.quad	__OBJC_PROTOCOL_$_MyProtocol03
	.quad	0
	.p2align	3, 0x0                          ; @"_OBJC_$_PROP_LIST_MyBaseClass_$_Category03"
__OBJC_$_PROP_LIST_MyBaseClass_$_Category03:
	.long	16                              ; 0x10
	.long	1                               ; 0x1
	.quad	l_OBJC_PROP_NAME_ATTR_.14
	.quad	l_OBJC_PROP_NAME_ATTR_.7
	.p2align	3, 0x0                          ; @"_OBJC_$_CATEGORY_MyBaseClass_$_Category03"
__OBJC_$_CATEGORY_MyBaseClass_$_Category03:
	.quad	l_OBJC_CLASS_NAME_.8
	.quad	_OBJC_CLASS_$_MyBaseClass
	.quad	__OBJC_$_CATEGORY_INSTANCE_METHODS_MyBaseClass_$_Category03
	.quad	__OBJC_$_CATEGORY_CLASS_METHODS_MyBaseClass_$_Category03
	.quad	__OBJC_CATEGORY_PROTOCOLS_$_MyBaseClass_$_Category03
	.quad	__OBJC_$_PROP_LIST_MyBaseClass_$_Category03
	.quad	0
	.long	64                              ; 0x40
	.space	4
	.section	__DATA,__objc_catlist,regular,no_dead_strip
	.p2align	3, 0x0                          ; @"OBJC_LABEL_CATEGORY_$"
l_OBJC_LABEL_CATEGORY_$:
	.quad	__OBJC_$_CATEGORY_MyBaseClass_$_Category02
	.quad	__OBJC_$_CATEGORY_MyBaseClass_$_Category03
	.no_dead_strip	__OBJC_LABEL_PROTOCOL_$_MyProtocol02
	.no_dead_strip	__OBJC_LABEL_PROTOCOL_$_MyProtocol03
	.no_dead_strip	__OBJC_PROTOCOL_$_MyProtocol02
	.no_dead_strip	__OBJC_PROTOCOL_$_MyProtocol03
	.section	__DATA,__objc_imageinfo,regular,no_dead_strip
L_OBJC_IMAGE_INFO:
	.long	0
	.long	96
.subsections_via_symbols
