|  | ; RUN: rm -rf %t | 
|  | ; RUN: split-file %s %t | 
|  | ; RUN: cp -r %S/Inputs/Foundation/Foundation.framework %t/System/Library/Frameworks/ | 
|  | ; RUN: sed -e "s|DSTROOT|%/t|g" %t/inputs.json.in > %t/inputs.json | 
|  | ; RUN: yaml2obj %t/Mismatch.yaml -o %t/System/Library/Frameworks/Mismatch.framework/Mismatch | 
|  |  | 
|  | ; RUN: not clang-installapi --target=arm64-apple-macos13 \ | 
|  | ; RUN: --target=x86_64-apple-macos13 -darwin-target-variant x86_64-apple-ios16.0-macabi \ | 
|  | ; RUN: -darwin-target-variant arm64-apple-ios16.0-macabi \ | 
|  | ; RUN: -F %t/System/Library/Frameworks -isysroot %S/Inputs/MacOSX13.0.sdk \ | 
|  | ; RUN: -install_name /System/Library/Frameworks/Mismatch.framework/Versions/A/Mismatch \ | 
|  | ; RUN: -current_version 1 -compatibility_version 1 %t/inputs.json -o %t/Mismatch.tbd \ | 
|  | ; RUN: --verify-against=%t/System/Library/Frameworks/Mismatch.framework/Mismatch \ | 
|  | ; RUN: --verify-mode=Pedantic 2>&1 | FileCheck %s | 
|  |  | 
|  | ; CHECK:      warning: violations found for x86_64-apple-macos13 | 
|  | ; CHECK:      error: declaration has external linkage, but dynamic library doesn't have symbol 'foo_arch_x86' | 
|  | ; CHECK-NEXT: extern int foo_arch_x86(); | 
|  |  | 
|  | ; CHECK:      error: symbol exported in dynamic library, but marked hidden in declaration 'baz' | 
|  | ; CHECK-NEXT: int baz() __attribute__((visibility("hidden"))); | 
|  |  | 
|  | ; CHECK-NOT:  inlinedFunc | 
|  |  | 
|  | ; CHECK:      error: declaration has external linkage, but symbol has internal linkage in dynamic library 'bar' | 
|  | ; CHECK-NEXT: extern int bar(); | 
|  |  | 
|  | ; CHECK:      error: declaration has external linkage, but dynamic library doesn't have symbol 'NSFoo' | 
|  | ; CHECK-NEXT: @interface NSFoo | 
|  |  | 
|  | ; CHECK:      error: declaration has external linkage, but dynamic library doesn't have symbol 'NSFoo.nsint' | 
|  | ; CHECK-NEXT: int nsint; | 
|  |  | 
|  | ; CHECK:      error: declaration has external linkage, but dynamic library doesn't have symbol 'NSFooExcept' | 
|  | ; CHECK-NEXT: @interface NSFooExcept | 
|  |  | 
|  | ; CHECK:      warning: violations found for arm64-apple-macos13 | 
|  | ; CHECK:      error: declaration has external linkage, but dynamic library doesn't have symbol 'foo_arch_arm' | 
|  | ; CHECK-NEXT: extern int foo_arch_arm(); | 
|  |  | 
|  | ; CHECK:      warning: violations found for x86_64 | 
|  | ; CHECK-NEXT: error: no declaration found for exported symbol '_fooBar' in dynamic library | 
|  |  | 
|  | ; CHECK:      warning: violations found for arm64 | 
|  | ; CHECK-NEXT: error: no declaration found for exported symbol '_fooBar' in dynamic library | 
|  | ; CHECK:      warning: violations found for arm64-apple-macos13 | 
|  | ; CHECK-NEXT: error: declaration 'unavailableSymbol' is marked unavailable, but symbol is exported in dynamic library | 
|  | ; CHECK-NEXT: extern int unavailableSymbol | 
|  | ; CHECK:      warning: violations found for arm64-apple-ios16.0-macabi | 
|  | ; CHECK-NEXT: error: declaration 'unavailableSymbol' is marked unavailable, but symbol is exported in dynamic library | 
|  | ; CHECK-NEXT: extern int unavailableSymbol | 
|  |  | 
|  |  | 
|  | ;--- System/Library/Frameworks/Mismatch.framework/Headers/Mismatch.h | 
|  | #if defined(__x86_64__) | 
|  | extern int foo_arch_x86(); | 
|  | #else | 
|  | extern int foo_arch_arm(); | 
|  | #endif | 
|  |  | 
|  | int foo(); | 
|  | int baz() __attribute__((visibility("hidden"))); | 
|  |  | 
|  | __attribute__((visibility("hidden"))) inline int inlinedFunc() { return 1; } | 
|  |  | 
|  | ;--- System/Library/Frameworks/Mismatch.framework/PrivateHeaders/Mismatch_Private.h | 
|  | #include <Foundation/Foundation.h> | 
|  | extern int bar(); | 
|  |  | 
|  | @interface NSFoo : NSObject { | 
|  | int nsint; | 
|  | } | 
|  | @end | 
|  |  | 
|  | __attribute__((objc_exception)) | 
|  | @interface NSFooExcept : NSObject | 
|  | @end | 
|  |  | 
|  | extern int unavailableSymbol __attribute__(( | 
|  | availability(macosx, unavailable), availability(macCatalyst, unavailable))); | 
|  |  | 
|  |  | 
|  | // Generated from source: | 
|  | // *** | 
|  | //     int inlinedFunc() { return 1; } | 
|  | //     int foo() { return 1; } | 
|  | //     __attribute__((visibility("hidden"))) int bar() { return 1; } | 
|  | //     int baz() { return 1; } | 
|  | //     int fooBar = 1; | 
|  | //     int unavailableSymbol = 1; | 
|  | // *** | 
|  | // xcrun -sdk macosx clang -target x86_64-apple-macos13 --target-variant=x86_64-apple-ios16-macabi -dynamiclib | 
|  | // xcrun -sdk macosx clang -target arm64-apple-macos13 --target-variant=arm64-apple-ios16-macabi -dynamiclib | 
|  | // then lipo'ed together. | 
|  |  | 
|  | ;--- Mismatch.yaml | 
|  | --- !fat-mach-o | 
|  | FatHeader: | 
|  | magic:           0xCAFEBABE | 
|  | nfat_arch:       2 | 
|  | FatArchs: | 
|  | - cputype:         0x1000007 | 
|  | cpusubtype:      0x3 | 
|  | offset:          0x1000 | 
|  | size:            20768 | 
|  | align:           12 | 
|  | - cputype:         0x100000C | 
|  | cpusubtype:      0x0 | 
|  | offset:          0x8000 | 
|  | size:            49984 | 
|  | align:           14 | 
|  | Slices: | 
|  | - !mach-o | 
|  | FileHeader: | 
|  | magic:           0xFEEDFACF | 
|  | cputype:         0x1000007 | 
|  | cpusubtype:      0x3 | 
|  | filetype:        0x6 | 
|  | ncmds:           15 | 
|  | sizeofcmds:      1584 | 
|  | flags:           0x100085 | 
|  | reserved:        0x0 | 
|  | LoadCommands: | 
|  | - cmd:             LC_SEGMENT_64 | 
|  | cmdsize:         312 | 
|  | segname:         __TEXT | 
|  | vmaddr:          0 | 
|  | vmsize:          12288 | 
|  | fileoff:         0 | 
|  | filesize:        12288 | 
|  | maxprot:         5 | 
|  | initprot:        5 | 
|  | nsects:          3 | 
|  | flags:           0 | 
|  | Sections: | 
|  | - sectname:        __text | 
|  | segname:         __TEXT | 
|  | addr:            0x1090 | 
|  | size:            59 | 
|  | offset:          0x1090 | 
|  | align:           4 | 
|  | reloff:          0x0 | 
|  | nreloc:          0 | 
|  | flags:           0x80000400 | 
|  | reserved1:       0x0 | 
|  | reserved2:       0x0 | 
|  | reserved3:       0x0 | 
|  | content:         554889E5B8010000005DC30F1F440000554889E5B8010000005DC30F1F440000554889E5B8010000005DC30F1F440000554889E5B8010000005DC3 | 
|  | - sectname:        __unwind_info | 
|  | segname:         __TEXT | 
|  | addr:            0x10CC | 
|  | size:            4152 | 
|  | offset:          0x10CC | 
|  | align:           2 | 
|  | reloff:          0x0 | 
|  | nreloc:          0 | 
|  | flags:           0x0 | 
|  | reserved1:       0x0 | 
|  | reserved2:       0x0 | 
|  | reserved3:       0x0 | 
|  | content:         010000001C000000010000002000000000000000200000000200000000000001901000003800000038000000CB1000000000000038000000030000000C0001001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | 
|  | - sectname:        __eh_frame | 
|  | segname:         __TEXT | 
|  | addr:            0x2108 | 
|  | size:            24 | 
|  | offset:          0x2108 | 
|  | align:           3 | 
|  | reloff:          0x0 | 
|  | nreloc:          0 | 
|  | flags:           0x6000000B | 
|  | reserved1:       0x0 | 
|  | reserved2:       0x0 | 
|  | reserved3:       0x0 | 
|  | content:         1400000000000000017A520001781001100C070890010000 | 
|  | - cmd:             LC_SEGMENT_64 | 
|  | cmdsize:         152 | 
|  | segname:         __DATA_CONST | 
|  | vmaddr:          12288 | 
|  | vmsize:          4096 | 
|  | fileoff:         12288 | 
|  | filesize:        4096 | 
|  | maxprot:         3 | 
|  | initprot:        3 | 
|  | nsects:          1 | 
|  | flags:           16 | 
|  | Sections: | 
|  | - sectname:        __objc_imageinfo | 
|  | segname:         __DATA_CONST | 
|  | addr:            0x3000 | 
|  | size:            8 | 
|  | offset:          0x3000 | 
|  | align:           0 | 
|  | reloff:          0x0 | 
|  | nreloc:          0 | 
|  | flags:           0x0 | 
|  | reserved1:       0x0 | 
|  | reserved2:       0x0 | 
|  | reserved3:       0x0 | 
|  | content:         '0000000040000000' | 
|  | - cmd:             LC_SEGMENT_64 | 
|  | cmdsize:         152 | 
|  | segname:         __DATA | 
|  | vmaddr:          16384 | 
|  | vmsize:          4096 | 
|  | fileoff:         16384 | 
|  | filesize:        4096 | 
|  | maxprot:         3 | 
|  | initprot:        3 | 
|  | nsects:          1 | 
|  | flags:           0 | 
|  | Sections: | 
|  | - sectname:        __data | 
|  | segname:         __DATA | 
|  | addr:            0x4000 | 
|  | size:            8 | 
|  | offset:          0x4000 | 
|  | align:           2 | 
|  | reloff:          0x0 | 
|  | nreloc:          0 | 
|  | flags:           0x0 | 
|  | reserved1:       0x0 | 
|  | reserved2:       0x0 | 
|  | reserved3:       0x0 | 
|  | content:         '0100000001000000' | 
|  | - cmd:             LC_SEGMENT_64 | 
|  | cmdsize:         72 | 
|  | segname:         __LINKEDIT | 
|  | vmaddr:          20480 | 
|  | vmsize:          288 | 
|  | fileoff:         20480 | 
|  | filesize:        288 | 
|  | maxprot:         1 | 
|  | initprot:        1 | 
|  | nsects:          0 | 
|  | flags:           0 | 
|  | - cmd:             LC_DYLD_INFO_ONLY | 
|  | cmdsize:         48 | 
|  | rebase_off:      0 | 
|  | rebase_size:     0 | 
|  | bind_off:        0 | 
|  | bind_size:       0 | 
|  | weak_bind_off:   0 | 
|  | weak_bind_size:  0 | 
|  | lazy_bind_off:   0 | 
|  | lazy_bind_size:  0 | 
|  | export_off:      20480 | 
|  | export_size:     88 | 
|  | - cmd:             LC_SYMTAB | 
|  | cmdsize:         24 | 
|  | symoff:          20576 | 
|  | nsyms:           7 | 
|  | stroff:          20688 | 
|  | strsize:         80 | 
|  | - cmd:             LC_DYSYMTAB | 
|  | cmdsize:         80 | 
|  | ilocalsym:       0 | 
|  | nlocalsym:       1 | 
|  | iextdefsym:      1 | 
|  | nextdefsym:      5 | 
|  | iundefsym:       6 | 
|  | nundefsym:       1 | 
|  | tocoff:          0 | 
|  | ntoc:            0 | 
|  | modtaboff:       0 | 
|  | nmodtab:         0 | 
|  | extrefsymoff:    0 | 
|  | nextrefsyms:     0 | 
|  | indirectsymoff:  0 | 
|  | nindirectsyms:   0 | 
|  | extreloff:       0 | 
|  | nextrel:         0 | 
|  | locreloff:       0 | 
|  | nlocrel:         0 | 
|  | - cmd:             LC_ID_DYLIB | 
|  | cmdsize:         96 | 
|  | dylib: | 
|  | name:            24 | 
|  | timestamp:       0 | 
|  | current_version: 65536 | 
|  | compatibility_version: 65536 | 
|  | Content:         '/System/Library/Frameworks/Mismatch.framework/Versions/A/Mismatch' | 
|  | ZeroPadBytes:    7 | 
|  | - cmd:             LC_UUID | 
|  | cmdsize:         24 | 
|  | uuid:            4C4C4421-5555-3144-A16C-E4AA63D66775 | 
|  | - cmd:             LC_BUILD_VERSION | 
|  | cmdsize:         32 | 
|  | platform:        1 | 
|  | minos:           851968 | 
|  | sdk:             983040 | 
|  | ntools:          1 | 
|  | Tools: | 
|  | - tool:            4 | 
|  | version:         1245184 | 
|  | - cmd:             LC_BUILD_VERSION | 
|  | cmdsize:         32 | 
|  | platform:        6 | 
|  | minos:           1048576 | 
|  | sdk:             1048576 | 
|  | ntools:          1 | 
|  | Tools: | 
|  | - tool:            4 | 
|  | version:         1245184 | 
|  | - cmd:             LC_LOAD_DYLIB | 
|  | cmdsize:         56 | 
|  | dylib: | 
|  | name:            24 | 
|  | timestamp:       0 | 
|  | current_version: 14942208 | 
|  | compatibility_version: 65536 | 
|  | Content:         '/usr/lib/libobjc.A.dylib' | 
|  | ZeroPadBytes:    8 | 
|  | - cmd:             LC_LOAD_DYLIB | 
|  | cmdsize:         56 | 
|  | dylib: | 
|  | name:            24 | 
|  | timestamp:       0 | 
|  | current_version: 88539136 | 
|  | compatibility_version: 65536 | 
|  | Content:         '/usr/lib/libSystem.B.dylib' | 
|  | ZeroPadBytes:    6 | 
|  | - cmd:             LC_FUNCTION_STARTS | 
|  | cmdsize:         16 | 
|  | dataoff:         20568 | 
|  | datasize:        8 | 
|  | - cmd:             LC_DATA_IN_CODE | 
|  | cmdsize:         16 | 
|  | dataoff:         20576 | 
|  | datasize:        0 | 
|  | LinkEditData: | 
|  | ExportTrie: | 
|  | TerminalSize:    0 | 
|  | NodeOffset:      0 | 
|  | Name:            '' | 
|  | Flags:           0x0 | 
|  | Address:         0x0 | 
|  | Other:           0x0 | 
|  | ImportName:      '' | 
|  | Children: | 
|  | - TerminalSize:    0 | 
|  | NodeOffset:      5 | 
|  | Name:            _ | 
|  | Flags:           0x0 | 
|  | Address:         0x0 | 
|  | Other:           0x0 | 
|  | ImportName:      '' | 
|  | Children: | 
|  | - TerminalSize:    3 | 
|  | NodeOffset:      49 | 
|  | Name:            inlinedFunc | 
|  | Flags:           0x0 | 
|  | Address:         0x1090 | 
|  | Other:           0x0 | 
|  | ImportName:      '' | 
|  | - TerminalSize:    3 | 
|  | NodeOffset:      54 | 
|  | Name:            foo | 
|  | Flags:           0x0 | 
|  | Address:         0x10A0 | 
|  | Other:           0x0 | 
|  | ImportName:      '' | 
|  | Children: | 
|  | - TerminalSize:    4 | 
|  | NodeOffset:      64 | 
|  | Name:            Bar | 
|  | Flags:           0x0 | 
|  | Address:         0x4000 | 
|  | Other:           0x0 | 
|  | ImportName:      '' | 
|  | - TerminalSize:    4 | 
|  | NodeOffset:      70 | 
|  | Name:            unavailableSymbol | 
|  | Flags:           0x0 | 
|  | Address:         0x4004 | 
|  | Other:           0x0 | 
|  | ImportName:      '' | 
|  | - TerminalSize:    3 | 
|  | NodeOffset:      76 | 
|  | Name:            baz | 
|  | Flags:           0x0 | 
|  | Address:         0x10C0 | 
|  | Other:           0x0 | 
|  | ImportName:      '' | 
|  | NameList: | 
|  | - n_strx:          20 | 
|  | n_type:          0x1E | 
|  | n_sect:          1 | 
|  | n_desc:          0 | 
|  | n_value:         4272 | 
|  | - n_strx:          2 | 
|  | n_type:          0xF | 
|  | n_sect:          1 | 
|  | n_desc:          0 | 
|  | n_value:         4240 | 
|  | - n_strx:          15 | 
|  | n_type:          0xF | 
|  | n_sect:          1 | 
|  | n_desc:          0 | 
|  | n_value:         4256 | 
|  | - n_strx:          25 | 
|  | n_type:          0xF | 
|  | n_sect:          1 | 
|  | n_desc:          0 | 
|  | n_value:         4288 | 
|  | - n_strx:          30 | 
|  | n_type:          0xF | 
|  | n_sect:          5 | 
|  | n_desc:          0 | 
|  | n_value:         16384 | 
|  | - n_strx:          38 | 
|  | n_type:          0xF | 
|  | n_sect:          5 | 
|  | n_desc:          0 | 
|  | n_value:         16388 | 
|  | - n_strx:          57 | 
|  | n_type:          0x1 | 
|  | n_sect:          0 | 
|  | n_desc:          512 | 
|  | n_value:         0 | 
|  | StringTable: | 
|  | - ' ' | 
|  | - _inlinedFunc | 
|  | - _foo | 
|  | - _bar | 
|  | - _baz | 
|  | - _fooBar | 
|  | - _unavailableSymbol | 
|  | - dyld_stub_binder | 
|  | - '' | 
|  | - '' | 
|  | - '' | 
|  | - '' | 
|  | - '' | 
|  | - '' | 
|  | FunctionStarts:  [ 0x1090, 0x10A0, 0x10B0, 0x10C0 ] | 
|  | - !mach-o | 
|  | FileHeader: | 
|  | magic:           0xFEEDFACF | 
|  | cputype:         0x100000C | 
|  | cpusubtype:      0x0 | 
|  | filetype:        0x6 | 
|  | ncmds:           16 | 
|  | sizeofcmds:      1104 | 
|  | flags:           0x100085 | 
|  | reserved:        0x0 | 
|  | LoadCommands: | 
|  | - cmd:             LC_SEGMENT_64 | 
|  | cmdsize:         232 | 
|  | segname:         __TEXT | 
|  | vmaddr:          0 | 
|  | vmsize:          16384 | 
|  | fileoff:         0 | 
|  | filesize:        16384 | 
|  | maxprot:         5 | 
|  | initprot:        5 | 
|  | nsects:          2 | 
|  | flags:           0 | 
|  | Sections: | 
|  | - sectname:        __text | 
|  | segname:         __TEXT | 
|  | addr:            0x1050 | 
|  | size:            32 | 
|  | offset:          0x1050 | 
|  | align:           2 | 
|  | reloff:          0x0 | 
|  | nreloc:          0 | 
|  | flags:           0x80000400 | 
|  | reserved1:       0x0 | 
|  | reserved2:       0x0 | 
|  | reserved3:       0x0 | 
|  | content:         20008052C0035FD620008052C0035FD620008052C0035FD620008052C0035FD6 | 
|  | - sectname:        __unwind_info | 
|  | segname:         __TEXT | 
|  | addr:            0x1070 | 
|  | size:            4152 | 
|  | offset:          0x1070 | 
|  | align:           2 | 
|  | reloff:          0x0 | 
|  | nreloc:          0 | 
|  | flags:           0x0 | 
|  | reserved1:       0x0 | 
|  | reserved2:       0x0 | 
|  | reserved3:       0x0 | 
|  | content:         010000001C000000010000002000000000000000200000000200000000000002501000003800000038000000701000000000000038000000030000000C0001001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | 
|  | - cmd:             LC_SEGMENT_64 | 
|  | cmdsize:         152 | 
|  | segname:         __DATA_CONST | 
|  | vmaddr:          16384 | 
|  | vmsize:          16384 | 
|  | fileoff:         16384 | 
|  | filesize:        16384 | 
|  | maxprot:         3 | 
|  | initprot:        3 | 
|  | nsects:          1 | 
|  | flags:           16 | 
|  | Sections: | 
|  | - sectname:        __objc_imageinfo | 
|  | segname:         __DATA_CONST | 
|  | addr:            0x4000 | 
|  | size:            8 | 
|  | offset:          0x4000 | 
|  | align:           0 | 
|  | reloff:          0x0 | 
|  | nreloc:          0 | 
|  | flags:           0x0 | 
|  | reserved1:       0x0 | 
|  | reserved2:       0x0 | 
|  | reserved3:       0x0 | 
|  | content:         '0000000040000000' | 
|  | - cmd:             LC_SEGMENT_64 | 
|  | cmdsize:         152 | 
|  | segname:         __DATA | 
|  | vmaddr:          32768 | 
|  | vmsize:          16384 | 
|  | fileoff:         32768 | 
|  | filesize:        16384 | 
|  | maxprot:         3 | 
|  | initprot:        3 | 
|  | nsects:          1 | 
|  | flags:           0 | 
|  | Sections: | 
|  | - sectname:        __data | 
|  | segname:         __DATA | 
|  | addr:            0x8000 | 
|  | size:            8 | 
|  | offset:          0x8000 | 
|  | align:           2 | 
|  | reloff:          0x0 | 
|  | nreloc:          0 | 
|  | flags:           0x0 | 
|  | reserved1:       0x0 | 
|  | reserved2:       0x0 | 
|  | reserved3:       0x0 | 
|  | content:         '0100000001000000' | 
|  | - cmd:             LC_SEGMENT_64 | 
|  | cmdsize:         72 | 
|  | segname:         __LINKEDIT | 
|  | vmaddr:          49152 | 
|  | vmsize:          832 | 
|  | fileoff:         49152 | 
|  | filesize:        832 | 
|  | maxprot:         1 | 
|  | initprot:        1 | 
|  | nsects:          0 | 
|  | flags:           0 | 
|  | - cmd:             LC_DYLD_INFO_ONLY | 
|  | cmdsize:         48 | 
|  | rebase_off:      0 | 
|  | rebase_size:     0 | 
|  | bind_off:        0 | 
|  | bind_size:       0 | 
|  | weak_bind_off:   0 | 
|  | weak_bind_size:  0 | 
|  | lazy_bind_off:   0 | 
|  | lazy_bind_size:  0 | 
|  | export_off:      49152 | 
|  | export_size:     88 | 
|  | - cmd:             LC_SYMTAB | 
|  | cmdsize:         24 | 
|  | symoff:          49248 | 
|  | nsyms:           7 | 
|  | stroff:          49360 | 
|  | strsize:         80 | 
|  | - cmd:             LC_DYSYMTAB | 
|  | cmdsize:         80 | 
|  | ilocalsym:       0 | 
|  | nlocalsym:       1 | 
|  | iextdefsym:      1 | 
|  | nextdefsym:      5 | 
|  | iundefsym:       6 | 
|  | nundefsym:       1 | 
|  | tocoff:          0 | 
|  | ntoc:            0 | 
|  | modtaboff:       0 | 
|  | nmodtab:         0 | 
|  | extrefsymoff:    0 | 
|  | nextrefsyms:     0 | 
|  | indirectsymoff:  0 | 
|  | nindirectsyms:   0 | 
|  | extreloff:       0 | 
|  | nextrel:         0 | 
|  | locreloff:       0 | 
|  | nlocrel:         0 | 
|  | - cmd:             LC_ID_DYLIB | 
|  | cmdsize:         96 | 
|  | dylib: | 
|  | name:            24 | 
|  | timestamp:       0 | 
|  | current_version: 65536 | 
|  | compatibility_version: 65536 | 
|  | Content:         '/System/Library/Frameworks/Mismatch.framework/Versions/A/Mismatch' | 
|  | ZeroPadBytes:    7 | 
|  | - cmd:             LC_UUID | 
|  | cmdsize:         24 | 
|  | uuid:            4C4C4428-5555-3144-A12B-7130A3C946D2 | 
|  | - cmd:             LC_BUILD_VERSION | 
|  | cmdsize:         32 | 
|  | platform:        1 | 
|  | minos:           851968 | 
|  | sdk:             983040 | 
|  | ntools:          1 | 
|  | Tools: | 
|  | - tool:            4 | 
|  | version:         1245184 | 
|  | - cmd:             LC_BUILD_VERSION | 
|  | cmdsize:         32 | 
|  | platform:        6 | 
|  | minos:           1048576 | 
|  | sdk:             1048576 | 
|  | ntools:          1 | 
|  | Tools: | 
|  | - tool:            4 | 
|  | version:         1245184 | 
|  | - cmd:             LC_LOAD_DYLIB | 
|  | cmdsize:         56 | 
|  | dylib: | 
|  | name:            24 | 
|  | timestamp:       0 | 
|  | current_version: 14942208 | 
|  | compatibility_version: 65536 | 
|  | Content:         '/usr/lib/libobjc.A.dylib' | 
|  | ZeroPadBytes:    8 | 
|  | - cmd:             LC_LOAD_DYLIB | 
|  | cmdsize:         56 | 
|  | dylib: | 
|  | name:            24 | 
|  | timestamp:       0 | 
|  | current_version: 88539136 | 
|  | compatibility_version: 65536 | 
|  | Content:         '/usr/lib/libSystem.B.dylib' | 
|  | ZeroPadBytes:    6 | 
|  | - cmd:             LC_FUNCTION_STARTS | 
|  | cmdsize:         16 | 
|  | dataoff:         49240 | 
|  | datasize:        8 | 
|  | - cmd:             LC_DATA_IN_CODE | 
|  | cmdsize:         16 | 
|  | dataoff:         49248 | 
|  | datasize:        0 | 
|  | - cmd:             LC_CODE_SIGNATURE | 
|  | cmdsize:         16 | 
|  | dataoff:         49440 | 
|  | datasize:        544 | 
|  | LinkEditData: | 
|  | ExportTrie: | 
|  | TerminalSize:    0 | 
|  | NodeOffset:      0 | 
|  | Name:            '' | 
|  | Flags:           0x0 | 
|  | Address:         0x0 | 
|  | Other:           0x0 | 
|  | ImportName:      '' | 
|  | Children: | 
|  | - TerminalSize:    0 | 
|  | NodeOffset:      5 | 
|  | Name:            _ | 
|  | Flags:           0x0 | 
|  | Address:         0x0 | 
|  | Other:           0x0 | 
|  | ImportName:      '' | 
|  | Children: | 
|  | - TerminalSize:    3 | 
|  | NodeOffset:      49 | 
|  | Name:            inlinedFunc | 
|  | Flags:           0x0 | 
|  | Address:         0x1050 | 
|  | Other:           0x0 | 
|  | ImportName:      '' | 
|  | - TerminalSize:    3 | 
|  | NodeOffset:      54 | 
|  | Name:            foo | 
|  | Flags:           0x0 | 
|  | Address:         0x1058 | 
|  | Other:           0x0 | 
|  | ImportName:      '' | 
|  | Children: | 
|  | - TerminalSize:    4 | 
|  | NodeOffset:      64 | 
|  | Name:            Bar | 
|  | Flags:           0x0 | 
|  | Address:         0x8000 | 
|  | Other:           0x0 | 
|  | ImportName:      '' | 
|  | - TerminalSize:    4 | 
|  | NodeOffset:      70 | 
|  | Name:            unavailableSymbol | 
|  | Flags:           0x0 | 
|  | Address:         0x8004 | 
|  | Other:           0x0 | 
|  | ImportName:      '' | 
|  | - TerminalSize:    3 | 
|  | NodeOffset:      76 | 
|  | Name:            baz | 
|  | Flags:           0x0 | 
|  | Address:         0x1068 | 
|  | Other:           0x0 | 
|  | ImportName:      '' | 
|  | NameList: | 
|  | - n_strx:          20 | 
|  | n_type:          0x1E | 
|  | n_sect:          1 | 
|  | n_desc:          0 | 
|  | n_value:         4192 | 
|  | - n_strx:          2 | 
|  | n_type:          0xF | 
|  | n_sect:          1 | 
|  | n_desc:          0 | 
|  | n_value:         4176 | 
|  | - n_strx:          15 | 
|  | n_type:          0xF | 
|  | n_sect:          1 | 
|  | n_desc:          0 | 
|  | n_value:         4184 | 
|  | - n_strx:          25 | 
|  | n_type:          0xF | 
|  | n_sect:          1 | 
|  | n_desc:          0 | 
|  | n_value:         4200 | 
|  | - n_strx:          30 | 
|  | n_type:          0xF | 
|  | n_sect:          4 | 
|  | n_desc:          0 | 
|  | n_value:         32768 | 
|  | - n_strx:          38 | 
|  | n_type:          0xF | 
|  | n_sect:          4 | 
|  | n_desc:          0 | 
|  | n_value:         32772 | 
|  | - n_strx:          57 | 
|  | n_type:          0x1 | 
|  | n_sect:          0 | 
|  | n_desc:          512 | 
|  | n_value:         0 | 
|  | StringTable: | 
|  | - ' ' | 
|  | - _inlinedFunc | 
|  | - _foo | 
|  | - _bar | 
|  | - _baz | 
|  | - _fooBar | 
|  | - _unavailableSymbol | 
|  | - dyld_stub_binder | 
|  | - '' | 
|  | - '' | 
|  | - '' | 
|  | - '' | 
|  | - '' | 
|  | - '' | 
|  | FunctionStarts:  [ 0x1050, 0x1058, 0x1060, 0x1068 ] | 
|  | ... | 
|  |  | 
|  | ;--- inputs.json.in | 
|  | { | 
|  | "headers": [ | 
|  | { | 
|  | "path" : "DSTROOT/System/Library/Frameworks/Mismatch.framework/PrivateHeaders/Mismatch_Private.h", | 
|  | "type" : "private" | 
|  | }, | 
|  | { | 
|  | "path" : "DSTROOT/System/Library/Frameworks/Mismatch.framework/Headers/Mismatch.h", | 
|  | "type" : "public" | 
|  | } | 
|  | ], | 
|  | "version": "3" | 
|  | } |