@@ -361,248 +361,88 @@ FUNCTION(ErrorStrongRelease, swift_errorRelease, C_CC,
361
361
ARGS(ErrorPtrTy),
362
362
ATTRS(NoUnwind))
363
363
364
- // void *swift_unownedRetain(void *ptr);
365
- FUNCTION(NativeUnownedRetain, swift_unownedRetain, C_CC,
366
- RETURNS(RefCountedPtrTy),
367
- ARGS(RefCountedPtrTy),
368
- ATTRS(NoUnwind, FirstParamReturned))
369
-
370
- // void swift_unownedRelease(void *ptr);
371
- FUNCTION(NativeUnownedRelease, swift_unownedRelease, C_CC,
372
- RETURNS(VoidTy),
373
- ARGS(RefCountedPtrTy),
374
- ATTRS(NoUnwind))
375
-
376
- // void *swift_nonatomic_unownedRetain(void *ptr);
377
- FUNCTION(NonAtomicNativeUnownedRetain, swift_nonatomic_unownedRetain,
378
- C_CC,
379
- RETURNS(RefCountedPtrTy),
380
- ARGS(RefCountedPtrTy),
381
- ATTRS(NoUnwind, FirstParamReturned))
382
-
383
- // void swift_nonatomic_unownedRelease(void *ptr);
384
- FUNCTION(NonAtomicNativeUnownedRelease, swift_nonatomic_unownedRelease,
385
- C_CC,
386
- RETURNS(VoidTy),
387
- ARGS(RefCountedPtrTy),
388
- ATTRS(NoUnwind))
389
-
390
- // void *swift_unownedRetain_n(void *ptr, int32_t n);
391
- FUNCTION(UnownedRetainN, swift_unownedRetain_n,
392
- C_CC,
393
- RETURNS(RefCountedPtrTy),
394
- ARGS(RefCountedPtrTy, Int32Ty),
395
- ATTRS(NoUnwind, FirstParamReturned))
396
-
397
- // void swift_unownedRelease_n(void *ptr, int32_t n);
398
- FUNCTION(UnownedReleaseN, swift_unownedRelease_n,
399
- C_CC,
400
- RETURNS(VoidTy),
401
- ARGS(RefCountedPtrTy, Int32Ty),
402
- ATTRS(NoUnwind))
403
-
404
- // void *swift_nonatomic_unownedRetain_n(void *ptr, int32_t n);
405
- FUNCTION(NonAtomicUnownedRetainN, swift_nonatomic_unownedRetain_n,
406
- C_CC,
407
- RETURNS(RefCountedPtrTy),
408
- ARGS(RefCountedPtrTy, Int32Ty),
409
- ATTRS(NoUnwind, FirstParamReturned))
410
-
411
- // void swift_nonatomic_unownedRelease_n(void *ptr, int32_t n);
412
- FUNCTION(NonAtomicUnownedReleaseN, swift_nonatomic_unownedRelease_n,
413
- C_CC,
414
- RETURNS(VoidTy),
415
- ARGS(RefCountedPtrTy, Int32Ty),
416
- ATTRS(NoUnwind))
417
-
418
- // void *swift_unownedRetainStrong(void *ptr);
419
- FUNCTION(NativeStrongRetainUnowned, swift_unownedRetainStrong, C_CC,
420
- RETURNS(RefCountedPtrTy),
421
- ARGS(RefCountedPtrTy),
422
- ATTRS(NoUnwind, FirstParamReturned))
423
-
424
- // void *swift_nonatomic_unownedRetainStrong(void *ptr);
425
- FUNCTION(NonAtomicNativeStrongRetainUnowned, swift_nonatomic_unownedRetainStrong,
426
- C_CC,
427
- RETURNS(RefCountedPtrTy),
428
- ARGS(RefCountedPtrTy),
429
- ATTRS(NoUnwind, FirstParamReturned))
430
-
431
- // void swift_unownedRetainStrongAndRelease(void *ptr);
432
- FUNCTION(NativeStrongRetainAndUnownedRelease,
433
- swift_unownedRetainStrongAndRelease, C_CC,
434
- RETURNS(VoidTy),
435
- ARGS(RefCountedPtrTy),
436
- ATTRS(NoUnwind))
437
-
438
- // void swift_nonatomic_unownedRetainStrongAndRelease(void *ptr);
439
- FUNCTION(NonAtomicNativeStrongRetainAndUnownedRelease,
440
- swift_nonatomic_unownedRetainStrongAndRelease, C_CC,
441
- RETURNS(VoidTy),
442
- ARGS(RefCountedPtrTy),
443
- ATTRS(NoUnwind))
444
-
445
- // void swift_weakDestroy(WeakReference *object);
446
- FUNCTION(NativeWeakDestroy, swift_weakDestroy, C_CC,
447
- RETURNS(VoidTy),
448
- ARGS(WeakReferencePtrTy),
449
- ATTRS(NoUnwind))
450
-
451
- // WeakReference *swift_weakInit(WeakReference *object, void *value);
452
- FUNCTION(NativeWeakInit, swift_weakInit, C_CC,
453
- RETURNS(WeakReferencePtrTy),
454
- ARGS(WeakReferencePtrTy, RefCountedPtrTy),
455
- ATTRS(NoUnwind, FirstParamReturned))
456
-
457
- // WeakReference *swift_weakAssign(WeakReference *object, void *value);
458
- FUNCTION(NativeWeakAssign, swift_weakAssign, C_CC,
459
- RETURNS(WeakReferencePtrTy),
460
- ARGS(WeakReferencePtrTy, RefCountedPtrTy),
461
- ATTRS(NoUnwind, FirstParamReturned))
462
-
463
- // void *swift_weakLoadStrong(WeakReference *object);
464
- FUNCTION(NativeWeakLoadStrong, swift_weakLoadStrong,C_CC,
465
- RETURNS(RefCountedPtrTy),
466
- ARGS(WeakReferencePtrTy),
467
- ATTRS(NoUnwind))
468
-
469
- // void *swift_weakTakeStrong(WeakReference *object);
470
- FUNCTION(NativeWeakTakeStrong, swift_weakTakeStrong,C_CC,
471
- RETURNS(RefCountedPtrTy),
472
- ARGS(WeakReferencePtrTy),
473
- ATTRS(NoUnwind))
474
-
475
- // WeakReference *swift_weakCopyInit(WeakReference *dest, WeakReference *src);
476
- FUNCTION(NativeWeakCopyInit, swift_weakCopyInit, C_CC,
477
- RETURNS(WeakReferencePtrTy),
478
- ARGS(WeakReferencePtrTy, WeakReferencePtrTy),
479
- ATTRS(NoUnwind, FirstParamReturned))
480
-
481
- // WeakReference *swift_weakTakeInit(WeakReference *dest, WeakReference *src);
482
- FUNCTION(NativeWeakTakeInit, swift_weakTakeInit, C_CC,
483
- RETURNS(WeakReferencePtrTy),
484
- ARGS(WeakReferencePtrTy, WeakReferencePtrTy),
485
- ATTRS(NoUnwind, FirstParamReturned))
486
-
487
- // WeakReference *swift_weakCopyAssign(WeakReference *dest, WeakReference *src);
488
- FUNCTION(NativeWeakCopyAssign, swift_weakCopyAssign, C_CC,
489
- RETURNS(WeakReferencePtrTy),
490
- ARGS(WeakReferencePtrTy, WeakReferencePtrTy),
491
- ATTRS(NoUnwind, FirstParamReturned))
492
-
493
- // WeakReference *swift_weakTakeAssign(WeakReference *dest, WeakReference *src);
494
- FUNCTION(NativeWeakTakeAssign, swift_weakTakeAssign, C_CC,
495
- RETURNS(WeakReferencePtrTy),
496
- ARGS(WeakReferencePtrTy, WeakReferencePtrTy),
497
- ATTRS(NoUnwind, FirstParamReturned))
498
-
499
- // void swift_unknownWeakDestroy(WeakReference *object);
500
- FUNCTION(UnknownWeakDestroy, swift_unknownWeakDestroy, C_CC,
501
- RETURNS(VoidTy),
502
- ARGS(WeakReferencePtrTy),
503
- ATTRS(NoUnwind))
504
-
505
- // void swift_unknownWeakInit(WeakReference *object, void *value);
506
- FUNCTION(UnknownWeakInit, swift_unknownWeakInit, C_CC,
507
- RETURNS(WeakReferencePtrTy),
508
- ARGS(WeakReferencePtrTy, UnknownRefCountedPtrTy),
509
- ATTRS(NoUnwind, FirstParamReturned))
510
-
511
- // WeakReference *swift_unknownWeakAssign(WeakReference *object, void *value);
512
- FUNCTION(UnknownWeakAssign, swift_unknownWeakAssign, C_CC,
513
- RETURNS(WeakReferencePtrTy),
514
- ARGS(WeakReferencePtrTy, UnknownRefCountedPtrTy),
515
- ATTRS(NoUnwind, FirstParamReturned))
516
-
517
- // void *swift_unknownWeakLoad(WeakReference *object);
518
- FUNCTION(UnknownWeakLoadStrong, swift_unknownWeakLoadStrong,C_CC,
519
- RETURNS(UnknownRefCountedPtrTy),
520
- ARGS(WeakReferencePtrTy),
521
- ATTRS(NoUnwind))
522
-
523
- // void *swift_unknownWeakTake(WeakReference *object);
524
- FUNCTION(UnknownWeakTakeStrong, swift_unknownWeakTakeStrong,C_CC,
525
- RETURNS(UnknownRefCountedPtrTy),
526
- ARGS(WeakReferencePtrTy),
527
- ATTRS(NoUnwind))
528
-
529
- // WeakReference *swift_unknownWeakCopyInit(WeakReference *dest, WeakReference *src);
530
- FUNCTION(UnknownWeakCopyInit, swift_unknownWeakCopyInit, C_CC,
531
- RETURNS(WeakReferencePtrTy),
532
- ARGS(WeakReferencePtrTy, WeakReferencePtrTy),
533
- ATTRS(NoUnwind, FirstParamReturned))
534
-
535
- // void *swift_unknownWeakTakeInit(WeakReference *dest, WeakReference *src);
536
- FUNCTION(UnknownWeakTakeInit, swift_unknownWeakTakeInit, C_CC,
537
- RETURNS(WeakReferencePtrTy),
538
- ARGS(WeakReferencePtrTy, WeakReferencePtrTy),
539
- ATTRS(NoUnwind, FirstParamReturned))
540
-
541
- // WeakReference *swift_unknownWeakCopyAssign(WeakReference *dest, WeakReference *src);
542
- FUNCTION(UnknownWeakCopyAssign, swift_unknownWeakCopyAssign, C_CC,
543
- RETURNS(WeakReferencePtrTy),
544
- ARGS(WeakReferencePtrTy, WeakReferencePtrTy),
545
- ATTRS(NoUnwind, FirstParamReturned))
546
-
547
- // WeakReference *swift_unknownWeakTakeAssign(WeakReference *dest, WeakReference *src);
548
- FUNCTION(UnknownWeakTakeAssign, swift_unknownWeakTakeAssign, C_CC,
549
- RETURNS(WeakReferencePtrTy),
550
- ARGS(WeakReferencePtrTy, WeakReferencePtrTy),
551
- ATTRS(NoUnwind, FirstParamReturned))
552
-
553
- // void swift_unknownUnownedDestroy(UnownedReference *object);
554
- FUNCTION(UnknownUnownedDestroy, swift_unknownUnownedDestroy, C_CC,
555
- RETURNS(VoidTy),
556
- ARGS(UnownedReferencePtrTy),
557
- ATTRS(NoUnwind))
558
-
559
- // UnownedReference *swift_unknownUnownedInit(UnownedReference *object, void *value);
560
- FUNCTION(UnknownUnownedInit, swift_unknownUnownedInit, C_CC,
561
- RETURNS(UnownedReferencePtrTy),
562
- ARGS(UnownedReferencePtrTy, UnknownRefCountedPtrTy),
563
- ATTRS(NoUnwind, FirstParamReturned))
564
-
565
- // UnownedReference *swift_unknownUnownedAssign(UnownedReference *object, void *value);
566
- FUNCTION(UnknownUnownedAssign, swift_unknownUnownedAssign, C_CC,
567
- RETURNS(UnownedReferencePtrTy),
568
- ARGS(UnownedReferencePtrTy, UnknownRefCountedPtrTy),
569
- ATTRS(NoUnwind, FirstParamReturned))
570
-
571
- // void *swift_unknownUnownedLoad(UnownedReference *object);
572
- FUNCTION(UnknownUnownedLoadStrong, swift_unknownUnownedLoadStrong, C_CC,
573
- RETURNS(UnknownRefCountedPtrTy),
574
- ARGS(UnownedReferencePtrTy),
575
- ATTRS(NoUnwind))
576
-
577
- // void *swift_unknownUnownedTake(UnownedReference *object);
578
- FUNCTION(UnknownUnownedTakeStrong, swift_unknownUnownedTakeStrong, C_CC,
579
- RETURNS(UnknownRefCountedPtrTy),
580
- ARGS(UnownedReferencePtrTy),
581
- ATTRS(NoUnwind))
582
-
583
- // UnownedReference *swift_unknownUnownedCopyInit(UnownedReference *dest, UnownedReference *src);
584
- FUNCTION(UnknownUnownedCopyInit, swift_unknownUnownedCopyInit, C_CC,
585
- RETURNS(UnownedReferencePtrTy),
586
- ARGS(UnownedReferencePtrTy, UnownedReferencePtrTy),
587
- ATTRS(NoUnwind, FirstParamReturned))
588
-
589
- // UnownedReference *swift_unknownUnownedTakeInit(UnownedReference *dest, UnownedReference *src);
590
- FUNCTION(UnknownUnownedTakeInit, swift_unknownUnownedTakeInit, C_CC,
591
- RETURNS(UnownedReferencePtrTy),
592
- ARGS(UnownedReferencePtrTy, UnownedReferencePtrTy),
593
- ATTRS(NoUnwind, FirstParamReturned))
594
-
595
- // UnownedReference *swift_unknownUnownedCopyAssign(UnownedReference *dest, UnownedReference *src);
596
- FUNCTION(UnknownUnownedCopyAssign, swift_unknownUnownedCopyAssign, C_CC,
597
- RETURNS(UnownedReferencePtrTy),
598
- ARGS(UnownedReferencePtrTy, UnownedReferencePtrTy),
599
- ATTRS(NoUnwind, FirstParamReturned))
600
-
601
- // UnownedReference *swift_unknownUnownedTakeAssign(UnownedReference *dest, UnownedReference *src);
602
- FUNCTION(UnknownUnownedTakeAssign, swift_unknownUnownedTakeAssign, C_CC,
603
- RETURNS(UnownedReferencePtrTy),
604
- ARGS(UnownedReferencePtrTy, UnownedReferencePtrTy),
605
- ATTRS(NoUnwind, FirstParamReturned))
364
+ #define NEVER_LOADABLE_CHECKED_REF_STORAGE_HELPER(Name, Nativeness, SymName, UnknownPrefix) \
365
+ /* void swift_##SymName##Destroy(Name##Reference *object); */ \
366
+ FUNCTION(Nativeness##Name##Destroy, swift_##SymName##Destroy, C_CC, \
367
+ RETURNS(VoidTy), \
368
+ ARGS(Name##ReferencePtrTy), \
369
+ ATTRS(NoUnwind)) \
370
+ /* void swift_##SymName##Init(Name##Reference *object, void *value); */ \
371
+ FUNCTION(Nativeness##Name##Init, swift_##SymName##Init, C_CC, \
372
+ RETURNS(Name##ReferencePtrTy), \
373
+ ARGS(Name##ReferencePtrTy, UnknownPrefix##RefCountedPtrTy), \
374
+ ATTRS(NoUnwind, FirstParamReturned)) \
375
+ /* Name##Reference *swift_##SymName##Assign(Name##Reference *object, void *value); */ \
376
+ FUNCTION(Nativeness##Name##Assign, swift_##SymName##Assign, C_CC, \
377
+ RETURNS(Name##ReferencePtrTy), \
378
+ ARGS(Name##ReferencePtrTy, UnknownPrefix##RefCountedPtrTy), \
379
+ ATTRS(NoUnwind, FirstParamReturned)) \
380
+ /* void *swift_##SymName##Load(Name##Reference *object); */ \
381
+ FUNCTION(Nativeness##Name##LoadStrong, swift_##SymName##LoadStrong,C_CC, \
382
+ RETURNS(UnknownPrefix##RefCountedPtrTy), \
383
+ ARGS(Name##ReferencePtrTy), \
384
+ ATTRS(NoUnwind)) \
385
+ /* void *swift_##SymName##Take(Name##Reference *object); */ \
386
+ FUNCTION(Nativeness##Name##TakeStrong, swift_##SymName##TakeStrong,C_CC, \
387
+ RETURNS(UnknownPrefix##RefCountedPtrTy), \
388
+ ARGS(Name##ReferencePtrTy), \
389
+ ATTRS(NoUnwind)) \
390
+ /* Name##Reference *swift_##SymName##CopyInit(Name##Reference *dest, Name##Reference *src); */ \
391
+ FUNCTION(Nativeness##Name##CopyInit, swift_##SymName##CopyInit, C_CC, \
392
+ RETURNS(Name##ReferencePtrTy), \
393
+ ARGS(Name##ReferencePtrTy, Name##ReferencePtrTy), \
394
+ ATTRS(NoUnwind, FirstParamReturned)) \
395
+ /* void *swift_##SymName##TakeInit(Name##Reference *dest, Name##Reference *src); */ \
396
+ FUNCTION(Nativeness##Name##TakeInit, swift_##SymName##TakeInit, C_CC, \
397
+ RETURNS(Name##ReferencePtrTy), \
398
+ ARGS(Name##ReferencePtrTy, Name##ReferencePtrTy), \
399
+ ATTRS(NoUnwind, FirstParamReturned)) \
400
+ /* Name##Reference *swift_##SymName##CopyAssign(Name##Reference *dest, Name##Reference *src); */ \
401
+ FUNCTION(Nativeness##Name##CopyAssign, swift_##SymName##CopyAssign, C_CC, \
402
+ RETURNS(Name##ReferencePtrTy), \
403
+ ARGS(Name##ReferencePtrTy, Name##ReferencePtrTy), \
404
+ ATTRS(NoUnwind, FirstParamReturned)) \
405
+ /* Name##Reference *swift_##SymName##TakeAssign(Name##Reference *dest, Name##Reference *src); */ \
406
+ FUNCTION(Nativeness##Name##TakeAssign, swift_##SymName##TakeAssign, C_CC, \
407
+ RETURNS(Name##ReferencePtrTy), \
408
+ ARGS(Name##ReferencePtrTy, Name##ReferencePtrTy), \
409
+ ATTRS(NoUnwind, FirstParamReturned))
410
+ #define NEVER_LOADABLE_CHECKED_REF_STORAGE(Name, name, ...) \
411
+ NEVER_LOADABLE_CHECKED_REF_STORAGE_HELPER(Name, Native, name, ) \
412
+ NEVER_LOADABLE_CHECKED_REF_STORAGE_HELPER(Name, Unknown, unknown##Name, Unknown)
413
+ #define LOADABLE_CHECKED_REF_STORAGE_HELPER(Name, name, Prefix, prefix) \
414
+ /* void *swift_##prefix##name##Retain(void *ptr); */ \
415
+ FUNCTION(Prefix##Name##Retain, swift_##prefix##name##Retain, C_CC, \
416
+ RETURNS(RefCountedPtrTy), \
417
+ ARGS(RefCountedPtrTy), \
418
+ ATTRS(NoUnwind, FirstParamReturned)) \
419
+ /* void swift_##prefix##name##Release(void *ptr); */ \
420
+ FUNCTION(Prefix##Name##Release, swift_##prefix##name##Release, C_CC, \
421
+ RETURNS(VoidTy), \
422
+ ARGS(RefCountedPtrTy), \
423
+ ATTRS(NoUnwind)) \
424
+ /* void *swift_##prefix##name##RetainStrong(void *ptr); */ \
425
+ FUNCTION(Prefix##StrongRetain##Name, swift_##prefix##name##RetainStrong, \
426
+ C_CC, \
427
+ RETURNS(RefCountedPtrTy), \
428
+ ARGS(RefCountedPtrTy), \
429
+ ATTRS(NoUnwind, FirstParamReturned)) \
430
+ /* void swift_##prefix##name##RetainStrongAndRelease(void *ptr); */ \
431
+ FUNCTION(Prefix##StrongRetainAnd##Name##Release, \
432
+ swift_##prefix##name##RetainStrongAndRelease, C_CC, \
433
+ RETURNS(VoidTy), \
434
+ ARGS(RefCountedPtrTy), \
435
+ ATTRS(NoUnwind))
436
+ #define SOMETIMES_LOADABLE_CHECKED_REF_STORAGE(Name, name, ...) \
437
+ NEVER_LOADABLE_CHECKED_REF_STORAGE_HELPER(Name, Unknown, unknown##Name, Unknown) \
438
+ LOADABLE_CHECKED_REF_STORAGE_HELPER(Name, name, Native, ) \
439
+ LOADABLE_CHECKED_REF_STORAGE_HELPER(Name, name, NonAtomicNative, nonatomic_)
440
+ #define ALWAYS_LOADABLE_CHECKED_REF_STORAGE(Name, name, ...) \
441
+ LOADABLE_CHECKED_REF_STORAGE_HELPER(Name, name, Native, ) \
442
+ LOADABLE_CHECKED_REF_STORAGE_HELPER(Name, name, NonAtomicNative, nonatomic_)
443
+ #include "swift/AST/ReferenceStorage.def"
444
+ #undef NEVER_LOADABLE_CHECKED_REF_STORAGE_HELPER
445
+ #undef LOADABLE_CHECKED_REF_STORAGE_HELPER
606
446
607
447
// bool swift_isUniquelyReferencedNonObjC(const void *);
608
448
FUNCTION(IsUniquelyReferencedNonObjC, swift_isUniquelyReferencedNonObjC,
0 commit comments