[clang] Implement lifetime analysis for lifetime_capture_by(X) (#115921)
[llvm-project.git] / clang / test / InstallAPI / reexported-frameworks.test
blob41c4f539c0b1fd23c5a085b8241be078e4481ad3
1 ; RUN: rm -rf %t
2 ; RUN: split-file %s %t
3 ; RUN: sed -e "s|DSTROOT|%/t|g" %t/inputs.json.in > %t/inputs.json
5 ; RUN: yaml2obj %t/Umbrella.yaml -o %t/Umbrella
6 ; RUN: mkdir -p %t/System/Library/Frameworks/Bar.framework
7 ; RUN: yaml2obj %t/Bar.yaml -o %t/System/Library/Frameworks/Bar.framework/Bar
9 ; RUN: clang-installapi -target x86_64-apple-macosx13 -install_name \
10 ; RUN: /System/Library/Frameworks/Umbrella3.framework/Versions/A/Umbrella3 \
11 ; RUN: -current_version 1 -compatibility_version 1 \
12 ; RUN: --verify-against=%t/Umbrella \
13 ; RUN: -F %t/System/Library/Frameworks -L %t/usr/lib \
14 ; RUN: %t/inputs.json --verify-mode=Pedantic \
15 ; RUN: -reexport_framework Foo -reexport_framework Bar -reexport-lBaz \
16 ; RUN: -o %t/Umbrella.tbd 2>&1 | FileCheck -allow-empty %s
17 ; RUN: llvm-readtapi -compare %t/Umbrella.tbd %t/expected.tbd 2>&1 | FileCheck -allow-empty %s
19 // Checks that one of the reexported frameworks found earlier doesn't resolve 
20 // a missing export from a declaration.
21 ; RUN: not clang-installapi -target x86_64-apple-macosx13 -install_name \
22 ; RUN: /System/Library/Frameworks/Umbrella3.framework/Versions/A/Umbrella3 \
23 ; RUN: -current_version 1 -compatibility_version 1 \
24 ; RUN: --verify-against=%t/Umbrella \
25 ; RUN: %t/inputs.json -F %t/BadFoo \
26 ; RUN: -F %t/System/Library/Frameworks -L %t/usr/lib \
27 ; RUN: --verify-mode=ErrorsOnly \
28 ; RUN: -reexport_framework Foo -reexport_framework Bar -reexport-lBaz \
29 ; RUN: -o %t/Umbrella.tbd 2>&1 | FileCheck %s --check-prefix MISSING_SYMBOL
31 ; MISSING_SYMBOL: error: declaration has external linkage, but dynamic library doesn't have symbol 'foo'
32 ; MISSING_SYMBOL-NEXT: extern int foo();
35 ; CHECK-NOT: error
36 ; CHECK-NOT: warning
38 ;--- System/Library/Frameworks/Umbrella.framework/Headers/Bar.h
39 extern int bar();
41 ;--- System/Library/Frameworks/Umbrella.framework/Headers/Baz.h
42 extern int baz();
44 ;--- System/Library/Frameworks/Umbrella.framework/Headers/Foo.h
45 extern int foo();
47 ;--- System/Library/Frameworks/Umbrella.framework/Headers/Umbrella.h
48 #import <Umbrella/Bar.h>
49 #import <Umbrella/Baz.h>
50 #import <Umbrella/Foo.h>
52 ;--- inputs.json.in
54   "headers": [ {
55     "path" : "DSTROOT/System/Library/Frameworks/Umbrella.framework/Headers/Bar.h",
56     "type" : "public"
57   }, 
58   {
59     "path" : "DSTROOT/System/Library/Frameworks/Umbrella.framework/Headers/Baz.h",
60     "type" : "public"
61   },
62   {
63     "path" : "DSTROOT/System/Library/Frameworks/Umbrella.framework/Headers/Umbrella.h",
64     "type" : "public"
65   },
66   {
67     "path" : "DSTROOT/System/Library/Frameworks/Umbrella.framework/Headers/Foo.h",
68     "type" : "public"
69   }
70   ],
71   "version": "3"
74 ;--- Umbrella.yaml
75 --- !mach-o
76 FileHeader:
77   magic:           0xFEEDFACF
78   cputype:         0x1000007
79   cpusubtype:      0x3
80   filetype:        0x6
81   ncmds:           18
82   sizeofcmds:      1184
83   flags:           0x85
84   reserved:        0x0
85 LoadCommands:
86   - cmd:             LC_SEGMENT_64
87     cmdsize:         152
88     segname:         __TEXT
89     vmaddr:          0
90     vmsize:          12288
91     fileoff:         0
92     filesize:        12288
93     maxprot:         5
94     initprot:        5
95     nsects:          1
96     flags:           0
97     Sections:
98       - sectname:        __text
99         segname:         __TEXT
100         addr:            0x24C0
101         size:            0
102         offset:          0x24C0
103         align:           0
104         reloff:          0x0
105         nreloc:          0
106         flags:           0x80000000
107         reserved1:       0x0
108         reserved2:       0x0
109         reserved3:       0x0
110         content:         ''
111   - cmd:             LC_SEGMENT_64
112     cmdsize:         152
113     segname:         __DATA_CONST
114     vmaddr:          12288
115     vmsize:          4096
116     fileoff:         12288
117     filesize:        4096
118     maxprot:         3
119     initprot:        3
120     nsects:          1
121     flags:           16
122     Sections:
123       - sectname:        __objc_imageinfo
124         segname:         __DATA_CONST
125         addr:            0x3000
126         size:            8
127         offset:          0x3000
128         align:           0
129         reloff:          0x0
130         nreloc:          0
131         flags:           0x0
132         reserved1:       0x0
133         reserved2:       0x0
134         reserved3:       0x0
135         content:         '0000000040000000'
136   - cmd:             LC_SEGMENT_64
137     cmdsize:         72
138     segname:         __LINKEDIT
139     vmaddr:          16384
140     vmsize:          48
141     fileoff:         16384
142     filesize:        48
143     maxprot:         1
144     initprot:        1
145     nsects:          0
146     flags:           0
147   - cmd:             LC_DYLD_INFO_ONLY
148     cmdsize:         48
149     rebase_off:      0
150     rebase_size:     0
151     bind_off:        0
152     bind_size:       0
153     weak_bind_off:   0
154     weak_bind_size:  0
155     lazy_bind_off:   0
156     lazy_bind_size:  0
157     export_off:      0
158     export_size:     0
159   - cmd:             LC_SYMTAB
160     cmdsize:         24
161     symoff:          16392
162     nsyms:           1
163     stroff:          16408
164     strsize:         24
165   - cmd:             LC_DYSYMTAB
166     cmdsize:         80
167     ilocalsym:       0
168     nlocalsym:       0
169     iextdefsym:      0
170     nextdefsym:      0
171     iundefsym:       0
172     nundefsym:       1
173     tocoff:          0
174     ntoc:            0
175     modtaboff:       0
176     nmodtab:         0
177     extrefsymoff:    0
178     nextrefsyms:     0
179     indirectsymoff:  0
180     nindirectsyms:   0
181     extreloff:       0
182     nextrel:         0
183     locreloff:       0
184     nlocrel:         0
185   - cmd:             LC_ID_DYLIB
186     cmdsize:         96
187     dylib:
188       name:            24
189       timestamp:       0
190       current_version: 65536
191       compatibility_version: 65536
192     Content:         '/System/Library/Frameworks/Umbrella3.framework/Versions/A/Umbrella3'
193     ZeroPadBytes:    5
194   - cmd:             LC_UUID
195     cmdsize:         24
196     uuid:            4C4C44AE-5555-3144-A1D3-33A5C6F7B36A
197   - cmd:             LC_BUILD_VERSION
198     cmdsize:         32
199     platform:        1
200     minos:           851968
201     sdk:             983040
202     ntools:          1
203     Tools:
204       - tool:            4
205         version:         1245184
206   - cmd:             LC_LOAD_DYLIB
207     cmdsize:         80
208     dylib:
209       name:            24
210       timestamp:       0
211       current_version: 65536
212       compatibility_version: 65536
213     Content:         '/System/Library/Frameworks/Foo.framework/Versions/A/Foo'
214     ZeroPadBytes:    1
215   - cmd:             LC_REEXPORT_DYLIB
216     cmdsize:         80
217     dylib:
218       name:            24
219       timestamp:       0
220       current_version: 0
221       compatibility_version: 0
222     Content:         '/System/Library/Frameworks/Foo.framework/Versions/A/Foo'
223     ZeroPadBytes:    1
224   - cmd:             LC_LOAD_DYLIB
225     cmdsize:         80
226     dylib:
227       name:            24
228       timestamp:       0
229       current_version: 65536
230       compatibility_version: 65536
231     Content:         '/System/Library/Frameworks/Bar.framework/Versions/A/Bar'
232     ZeroPadBytes:    1
233   - cmd:             LC_REEXPORT_DYLIB
234     cmdsize:         80
235     dylib:
236       name:            24
237       timestamp:       0
238       current_version: 0
239       compatibility_version: 0
240     Content:         '/System/Library/Frameworks/Bar.framework/Versions/A/Bar'
241     ZeroPadBytes:    1
242   - cmd:             LC_LOAD_DYLIB
243     cmdsize:         48
244     dylib:
245       name:            24
246       timestamp:       0
247       current_version: 65536
248       compatibility_version: 65536
249     Content:         '/usr/lib/libBaz.1.dylib'
250     ZeroPadBytes:    1
251   - cmd:             LC_REEXPORT_DYLIB
252     cmdsize:         48
253     dylib:
254       name:            24
255       timestamp:       0
256       current_version: 0
257       compatibility_version: 0
258     Content:         '/usr/lib/libBaz.1.dylib'
259     ZeroPadBytes:    1
260   - cmd:             LC_LOAD_DYLIB
261     cmdsize:         56
262     dylib:
263       name:            24
264       timestamp:       0
265       current_version: 88539136
266       compatibility_version: 65536
267     Content:         '/usr/lib/libSystem.B.dylib'
268     ZeroPadBytes:    6
269   - cmd:             LC_FUNCTION_STARTS
270     cmdsize:         16
271     dataoff:         16384
272     datasize:        8
273   - cmd:             LC_DATA_IN_CODE
274     cmdsize:         16
275     dataoff:         16392
276     datasize:        0
277 LinkEditData:
278   NameList:
279     - n_strx:          2
280       n_type:          0x1
281       n_sect:          0
282       n_desc:          1024
283       n_value:         0
284   StringTable:
285     - ' '
286     - dyld_stub_binder
287     - ''
288     - ''
289     - ''
290     - ''
291     - ''
294 ;--- System/Library/Frameworks/Foo.framework/Foo.tbd
296   "main_library": {
297     "exported_symbols": [
298       {
299         "text": {
300           "global": [
301             "_foo"
302           ]
303         }
304       }
305     ],
306     "flags": [
307       {
308         "attributes": [
309           "not_app_extension_safe"
310         ]
311       }
312     ],
313     "install_names": [
314       {
315         "name": "/System/Library/Frameworks/Foo.framework/Versions/A/Foo"
316       }
317     ],
318     "target_info": [
319       {
320         "min_deployment": "13",
321         "target": "x86_64-macos"
322       }
323     ]
324   },
325   "tapi_tbd_version": 5
328 ;--- Bar.yaml
329 --- !mach-o
330 FileHeader:
331   magic:           0xFEEDFACF
332   cputype:         0x1000007
333   cpusubtype:      0x3
334   filetype:        0x6
335   ncmds:           12
336   sizeofcmds:      912
337   flags:           0x100085
338   reserved:        0x0
339 LoadCommands:
340   - cmd:             LC_SEGMENT_64
341     cmdsize:         312
342     segname:         __TEXT
343     vmaddr:          0
344     vmsize:          8192
345     fileoff:         0
346     filesize:        8192
347     maxprot:         5
348     initprot:        5
349     nsects:          3
350     flags:           0
351     Sections:
352       - sectname:        __text
353         segname:         __TEXT
354         addr:            0xBB0
355         size:            8
356         offset:          0xBB0
357         align:           4
358         reloff:          0x0
359         nreloc:          0
360         flags:           0x80000400
361         reserved1:       0x0
362         reserved2:       0x0
363         reserved3:       0x0
364         content:         554889E531C05DC3
365       - sectname:        __unwind_info
366         segname:         __TEXT
367         addr:            0xBB8
368         size:            4152
369         offset:          0xBB8
370         align:           2
371         reloff:          0x0
372         nreloc:          0
373         flags:           0x0
374         reserved1:       0x0
375         reserved2:       0x0
376         reserved3:       0x0
377         content:         010000001C000000010000002000000000000000200000000200000000000001B00B00003800000038000000B80B00000000000038000000030000000C0001001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
378       - sectname:        __eh_frame
379         segname:         __TEXT
380         addr:            0x1BF0
381         size:            24
382         offset:          0x1BF0
383         align:           3
384         reloff:          0x0
385         nreloc:          0
386         flags:           0x6000000B
387         reserved1:       0x0
388         reserved2:       0x0
389         reserved3:       0x0
390         content:         1400000000000000017A520001781001100C070890010000
391   - cmd:             LC_SEGMENT_64
392     cmdsize:         152
393     segname:         __DATA_CONST
394     vmaddr:          8192
395     vmsize:          4096
396     fileoff:         8192
397     filesize:        4096
398     maxprot:         3
399     initprot:        3
400     nsects:          1
401     flags:           16
402     Sections:
403       - sectname:        __objc_imageinfo
404         segname:         __DATA_CONST
405         addr:            0x2000
406         size:            8
407         offset:          0x2000
408         align:           0
409         reloff:          0x0
410         nreloc:          0
411         flags:           0x0
412         reserved1:       0x0
413         reserved2:       0x0
414         reserved3:       0x0
415         content:         '0000000040000000'
416   - cmd:             LC_SEGMENT_64
417     cmdsize:         72
418     segname:         __LINKEDIT
419     vmaddr:          12288
420     vmsize:          80
421     fileoff:         12288
422     filesize:        80
423     maxprot:         1
424     initprot:        1
425     nsects:          0
426     flags:           0
427   - cmd:             LC_DYLD_INFO_ONLY
428     cmdsize:         48
429     rebase_off:      0
430     rebase_size:     0
431     bind_off:        0
432     bind_size:       0
433     weak_bind_off:   0
434     weak_bind_size:  0
435     lazy_bind_off:   0
436     lazy_bind_size:  0
437     export_off:      12288
438     export_size:     16
439   - cmd:             LC_SYMTAB
440     cmdsize:         24
441     symoff:          12312
442     nsyms:           2
443     stroff:          12344
444     strsize:         24
445   - cmd:             LC_DYSYMTAB
446     cmdsize:         80
447     ilocalsym:       0
448     nlocalsym:       0
449     iextdefsym:      0
450     nextdefsym:      1
451     iundefsym:       1
452     nundefsym:       1
453     tocoff:          0
454     ntoc:            0
455     modtaboff:       0
456     nmodtab:         0
457     extrefsymoff:    0
458     nextrefsyms:     0
459     indirectsymoff:  0
460     nindirectsyms:   0
461     extreloff:       0
462     nextrel:         0
463     locreloff:       0
464     nlocrel:         0
465   - cmd:             LC_ID_DYLIB
466     cmdsize:         80
467     dylib:
468       name:            24
469       timestamp:       0
470       current_version: 65536
471       compatibility_version: 65536
472     Content:         '/System/Library/Frameworks/Bar.framework/Versions/A/Bar'
473     ZeroPadBytes:    1
474   - cmd:             LC_UUID
475     cmdsize:         24
476     uuid:            4C4C4415-5555-3144-A11E-3C68D85CC061
477   - cmd:             LC_BUILD_VERSION
478     cmdsize:         32
479     platform:        1
480     minos:           851968
481     sdk:             983040
482     ntools:          1
483     Tools:
484       - tool:            4
485         version:         1245184
486   - cmd:             LC_LOAD_DYLIB
487     cmdsize:         56
488     dylib:
489       name:            24
490       timestamp:       0
491       current_version: 88539136
492       compatibility_version: 65536
493     Content:         '/usr/lib/libSystem.B.dylib'
494     ZeroPadBytes:    6
495   - cmd:             LC_FUNCTION_STARTS
496     cmdsize:         16
497     dataoff:         12304
498     datasize:        8
499   - cmd:             LC_DATA_IN_CODE
500     cmdsize:         16
501     dataoff:         12312
502     datasize:        0
503 LinkEditData:
504   ExportTrie:
505     TerminalSize:    0
506     NodeOffset:      0
507     Name:            ''
508     Flags:           0x0
509     Address:         0x0
510     Other:           0x0
511     ImportName:      ''
512     Children:
513       - TerminalSize:    3
514         NodeOffset:      8
515         Name:            _bar
516         Flags:           0x0
517         Address:         0xBB0
518         Other:           0x0
519         ImportName:      ''
520   NameList:
521     - n_strx:          2
522       n_type:          0xF
523       n_sect:          1
524       n_desc:          0
525       n_value:         2992
526     - n_strx:          7
527       n_type:          0x1
528       n_sect:          0
529       n_desc:          256
530       n_value:         0
531   StringTable:
532     - ' '
533     - _bar
534     - dyld_stub_binder
535   FunctionStarts:  [ 0xBB0 ]
538 ;--- usr/lib/libBaz.tbd
540   "main_library": {
541     "exported_symbols": [
542       {
543         "text": {
544           "global": [
545             "_baz"
546           ]
547         }
548       }
549     ],
550     "flags": [
551       {
552         "attributes": [
553           "not_app_extension_safe"
554         ]
555       }
556     ],
557     "install_names": [
558       {
559         "name": "/usr/lib/libBaz.1.dylib"
560       }
561     ],
562     "target_info": [
563       {
564         "min_deployment": "13",
565         "target": "x86_64-macos"
566       }
567     ]
568   },
569   "tapi_tbd_version": 5
572 ;--- BadFoo/Foo.framework/Foo.tbd
574   "main_library": {
575     "exported_symbols": [
576       {
577         "text": {
578           "global": [
579             "_not_so_foo"
580           ]
581         }
582       }
583     ],
584     "flags": [
585       {
586         "attributes": [
587           "not_app_extension_safe"
588         ]
589       }
590     ],
591     "install_names": [
592       {
593         "name": "/System/Library/Frameworks/Foo.framework/Versions/A/Foo"
594       }
595     ],
596     "target_info": [
597       {
598         "min_deployment": "13",
599         "target": "x86_64-macos"
600       }
601     ]
602   },
603   "tapi_tbd_version": 5
606 ;--- expected.tbd
608   "main_library": {
609     "flags": [
610       {
611         "attributes": [
612           "not_app_extension_safe"
613         ]
614       }
615     ],
616     "install_names": [
617       {
618         "name": "/System/Library/Frameworks/Umbrella3.framework/Versions/A/Umbrella3"
619       }
620     ],
621     "reexported_libraries": [
622       {
623         "names": [
624           "/System/Library/Frameworks/Bar.framework/Versions/A/Bar",
625           "/System/Library/Frameworks/Foo.framework/Versions/A/Foo",
626           "/usr/lib/libBaz.1.dylib"
627         ]
628       }
629     ],
630     "target_info": [
631       {
632         "min_deployment": "13",
633         "target": "x86_64-macos"
634       }
635     ]
636   },
637   "tapi_tbd_version": 5