Skip to content

Commit 4fb770b

Browse files
committed
Refactor unstable statics macro implementation
1 parent d2737da commit 4fb770b

31 files changed

+562
-599
lines changed

crates/objc2/src/macros/mod.rs

Lines changed: 134 additions & 171 deletions
Large diffs are not rendered by default.

crates/test-assembly/crates/test_declare_class/expected/apple-aarch64.s

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -878,12 +878,6 @@ l_anon.[ID].21:
878878
.quad l_anon.[ID].16
879879
.asciz "\017\000\000\000\000\000\000"
880880

881-
.section __DATA,__objc_imageinfo,regular,no_dead_strip
882-
.globl L_OBJC_IMAGE_INFO_d874ee9262978be2
883-
.p2align 2, 0x0
884-
L_OBJC_IMAGE_INFO_d874ee9262978be2:
885-
.asciz "\000\000\000\000@\000\000"
886-
887881
.section __TEXT,__objc_methname,cstring_literals
888882
.globl L_OBJC_METH_VAR_NAME_d874ee9262978be2
889883
L_OBJC_METH_VAR_NAME_d874ee9262978be2:
@@ -896,9 +890,9 @@ L_OBJC_SELECTOR_REFERENCES_d874ee9262978be2:
896890
.quad L_OBJC_METH_VAR_NAME_d874ee9262978be2
897891

898892
.section __DATA,__objc_imageinfo,regular,no_dead_strip
899-
.globl L_OBJC_IMAGE_INFO_4539fd1dbda0cddc
893+
.globl L_OBJC_IMAGE_INFO_d874ee9262978be2
900894
.p2align 2, 0x0
901-
L_OBJC_IMAGE_INFO_4539fd1dbda0cddc:
895+
L_OBJC_IMAGE_INFO_d874ee9262978be2:
902896
.asciz "\000\000\000\000@\000\000"
903897

904898
.section __TEXT,__objc_methname,cstring_literals
@@ -913,9 +907,9 @@ L_OBJC_SELECTOR_REFERENCES_4539fd1dbda0cddc:
913907
.quad L_OBJC_METH_VAR_NAME_4539fd1dbda0cddc
914908

915909
.section __DATA,__objc_imageinfo,regular,no_dead_strip
916-
.globl L_OBJC_IMAGE_INFO_2b1b3a94e0ece2e5
910+
.globl L_OBJC_IMAGE_INFO_4539fd1dbda0cddc
917911
.p2align 2, 0x0
918-
L_OBJC_IMAGE_INFO_2b1b3a94e0ece2e5:
912+
L_OBJC_IMAGE_INFO_4539fd1dbda0cddc:
919913
.asciz "\000\000\000\000@\000\000"
920914

921915
.section __TEXT,__objc_methname,cstring_literals
@@ -930,9 +924,9 @@ L_OBJC_SELECTOR_REFERENCES_2b1b3a94e0ece2e5:
930924
.quad L_OBJC_METH_VAR_NAME_2b1b3a94e0ece2e5
931925

932926
.section __DATA,__objc_imageinfo,regular,no_dead_strip
933-
.globl L_OBJC_IMAGE_INFO_f7f521670860b0ce
927+
.globl L_OBJC_IMAGE_INFO_2b1b3a94e0ece2e5
934928
.p2align 2, 0x0
935-
L_OBJC_IMAGE_INFO_f7f521670860b0ce:
929+
L_OBJC_IMAGE_INFO_2b1b3a94e0ece2e5:
936930
.asciz "\000\000\000\000@\000\000"
937931

938932
.section __TEXT,__objc_methname,cstring_literals
@@ -947,9 +941,9 @@ L_OBJC_SELECTOR_REFERENCES_f7f521670860b0ce:
947941
.quad L_OBJC_METH_VAR_NAME_f7f521670860b0ce
948942

949943
.section __DATA,__objc_imageinfo,regular,no_dead_strip
950-
.globl L_OBJC_IMAGE_INFO_6addfcf634c6232f
944+
.globl L_OBJC_IMAGE_INFO_f7f521670860b0ce
951945
.p2align 2, 0x0
952-
L_OBJC_IMAGE_INFO_6addfcf634c6232f:
946+
L_OBJC_IMAGE_INFO_f7f521670860b0ce:
953947
.asciz "\000\000\000\000@\000\000"
954948

955949
.section __TEXT,__objc_methname,cstring_literals
@@ -964,9 +958,9 @@ L_OBJC_SELECTOR_REFERENCES_6addfcf634c6232f:
964958
.quad L_OBJC_METH_VAR_NAME_6addfcf634c6232f
965959

966960
.section __DATA,__objc_imageinfo,regular,no_dead_strip
967-
.globl L_OBJC_IMAGE_INFO_4a8c690dbc9d8166
961+
.globl L_OBJC_IMAGE_INFO_6addfcf634c6232f
968962
.p2align 2, 0x0
969-
L_OBJC_IMAGE_INFO_4a8c690dbc9d8166:
963+
L_OBJC_IMAGE_INFO_6addfcf634c6232f:
970964
.asciz "\000\000\000\000@\000\000"
971965

972966
.section __TEXT,__objc_methname,cstring_literals
@@ -980,4 +974,10 @@ L_OBJC_METH_VAR_NAME_4a8c690dbc9d8166:
980974
L_OBJC_SELECTOR_REFERENCES_4a8c690dbc9d8166:
981975
.quad L_OBJC_METH_VAR_NAME_4a8c690dbc9d8166
982976

977+
.section __DATA,__objc_imageinfo,regular,no_dead_strip
978+
.globl L_OBJC_IMAGE_INFO_4a8c690dbc9d8166
979+
.p2align 2, 0x0
980+
L_OBJC_IMAGE_INFO_4a8c690dbc9d8166:
981+
.asciz "\000\000\000\000@\000\000"
982+
983983
.subsections_via_symbols

crates/test-assembly/crates/test_declare_class/expected/apple-armv7.s

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -806,12 +806,6 @@ l_anon.[ID].21:
806806
.long l_anon.[ID].16
807807
.asciz "\017\000\000"
808808

809-
.section __DATA,__objc_imageinfo,regular,no_dead_strip
810-
.globl L_OBJC_IMAGE_INFO_d874ee9262978be2
811-
.p2align 2, 0x0
812-
L_OBJC_IMAGE_INFO_d874ee9262978be2:
813-
.asciz "\000\000\000\000@\000\000"
814-
815809
.section __TEXT,__objc_methname,cstring_literals
816810
.globl L_OBJC_METH_VAR_NAME_d874ee9262978be2
817811
L_OBJC_METH_VAR_NAME_d874ee9262978be2:
@@ -824,9 +818,9 @@ L_OBJC_SELECTOR_REFERENCES_d874ee9262978be2:
824818
.long L_OBJC_METH_VAR_NAME_d874ee9262978be2
825819

826820
.section __DATA,__objc_imageinfo,regular,no_dead_strip
827-
.globl L_OBJC_IMAGE_INFO_4539fd1dbda0cddc
821+
.globl L_OBJC_IMAGE_INFO_d874ee9262978be2
828822
.p2align 2, 0x0
829-
L_OBJC_IMAGE_INFO_4539fd1dbda0cddc:
823+
L_OBJC_IMAGE_INFO_d874ee9262978be2:
830824
.asciz "\000\000\000\000@\000\000"
831825

832826
.section __TEXT,__objc_methname,cstring_literals
@@ -841,9 +835,9 @@ L_OBJC_SELECTOR_REFERENCES_4539fd1dbda0cddc:
841835
.long L_OBJC_METH_VAR_NAME_4539fd1dbda0cddc
842836

843837
.section __DATA,__objc_imageinfo,regular,no_dead_strip
844-
.globl L_OBJC_IMAGE_INFO_2b1b3a94e0ece2e5
838+
.globl L_OBJC_IMAGE_INFO_4539fd1dbda0cddc
845839
.p2align 2, 0x0
846-
L_OBJC_IMAGE_INFO_2b1b3a94e0ece2e5:
840+
L_OBJC_IMAGE_INFO_4539fd1dbda0cddc:
847841
.asciz "\000\000\000\000@\000\000"
848842

849843
.section __TEXT,__objc_methname,cstring_literals
@@ -858,9 +852,9 @@ L_OBJC_SELECTOR_REFERENCES_2b1b3a94e0ece2e5:
858852
.long L_OBJC_METH_VAR_NAME_2b1b3a94e0ece2e5
859853

860854
.section __DATA,__objc_imageinfo,regular,no_dead_strip
861-
.globl L_OBJC_IMAGE_INFO_f7f521670860b0ce
855+
.globl L_OBJC_IMAGE_INFO_2b1b3a94e0ece2e5
862856
.p2align 2, 0x0
863-
L_OBJC_IMAGE_INFO_f7f521670860b0ce:
857+
L_OBJC_IMAGE_INFO_2b1b3a94e0ece2e5:
864858
.asciz "\000\000\000\000@\000\000"
865859

866860
.section __TEXT,__objc_methname,cstring_literals
@@ -875,9 +869,9 @@ L_OBJC_SELECTOR_REFERENCES_f7f521670860b0ce:
875869
.long L_OBJC_METH_VAR_NAME_f7f521670860b0ce
876870

877871
.section __DATA,__objc_imageinfo,regular,no_dead_strip
878-
.globl L_OBJC_IMAGE_INFO_6addfcf634c6232f
872+
.globl L_OBJC_IMAGE_INFO_f7f521670860b0ce
879873
.p2align 2, 0x0
880-
L_OBJC_IMAGE_INFO_6addfcf634c6232f:
874+
L_OBJC_IMAGE_INFO_f7f521670860b0ce:
881875
.asciz "\000\000\000\000@\000\000"
882876

883877
.section __TEXT,__objc_methname,cstring_literals
@@ -892,9 +886,9 @@ L_OBJC_SELECTOR_REFERENCES_6addfcf634c6232f:
892886
.long L_OBJC_METH_VAR_NAME_6addfcf634c6232f
893887

894888
.section __DATA,__objc_imageinfo,regular,no_dead_strip
895-
.globl L_OBJC_IMAGE_INFO_4a8c690dbc9d8166
889+
.globl L_OBJC_IMAGE_INFO_6addfcf634c6232f
896890
.p2align 2, 0x0
897-
L_OBJC_IMAGE_INFO_4a8c690dbc9d8166:
891+
L_OBJC_IMAGE_INFO_6addfcf634c6232f:
898892
.asciz "\000\000\000\000@\000\000"
899893

900894
.section __TEXT,__objc_methname,cstring_literals
@@ -908,6 +902,12 @@ L_OBJC_METH_VAR_NAME_4a8c690dbc9d8166:
908902
L_OBJC_SELECTOR_REFERENCES_4a8c690dbc9d8166:
909903
.long L_OBJC_METH_VAR_NAME_4a8c690dbc9d8166
910904

905+
.section __DATA,__objc_imageinfo,regular,no_dead_strip
906+
.globl L_OBJC_IMAGE_INFO_4a8c690dbc9d8166
907+
.p2align 2, 0x0
908+
L_OBJC_IMAGE_INFO_4a8c690dbc9d8166:
909+
.asciz "\000\000\000\000@\000\000"
910+
911911
.section __DATA,__nl_symbol_ptr,non_lazy_symbol_pointers
912912
.p2align 2, 0x0
913913
LL_OBJC_CLASSLIST_REFERENCES_$_NSObject$non_lazy_ptr:

crates/test-assembly/crates/test_declare_class/expected/apple-armv7s.s

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -809,12 +809,6 @@ l_anon.[ID].21:
809809
.long l_anon.[ID].16
810810
.asciz "\017\000\000"
811811

812-
.section __DATA,__objc_imageinfo,regular,no_dead_strip
813-
.globl L_OBJC_IMAGE_INFO_d874ee9262978be2
814-
.p2align 2, 0x0
815-
L_OBJC_IMAGE_INFO_d874ee9262978be2:
816-
.asciz "\000\000\000\000@\000\000"
817-
818812
.section __TEXT,__objc_methname,cstring_literals
819813
.globl L_OBJC_METH_VAR_NAME_d874ee9262978be2
820814
L_OBJC_METH_VAR_NAME_d874ee9262978be2:
@@ -827,9 +821,9 @@ L_OBJC_SELECTOR_REFERENCES_d874ee9262978be2:
827821
.long L_OBJC_METH_VAR_NAME_d874ee9262978be2
828822

829823
.section __DATA,__objc_imageinfo,regular,no_dead_strip
830-
.globl L_OBJC_IMAGE_INFO_4539fd1dbda0cddc
824+
.globl L_OBJC_IMAGE_INFO_d874ee9262978be2
831825
.p2align 2, 0x0
832-
L_OBJC_IMAGE_INFO_4539fd1dbda0cddc:
826+
L_OBJC_IMAGE_INFO_d874ee9262978be2:
833827
.asciz "\000\000\000\000@\000\000"
834828

835829
.section __TEXT,__objc_methname,cstring_literals
@@ -844,9 +838,9 @@ L_OBJC_SELECTOR_REFERENCES_4539fd1dbda0cddc:
844838
.long L_OBJC_METH_VAR_NAME_4539fd1dbda0cddc
845839

846840
.section __DATA,__objc_imageinfo,regular,no_dead_strip
847-
.globl L_OBJC_IMAGE_INFO_2b1b3a94e0ece2e5
841+
.globl L_OBJC_IMAGE_INFO_4539fd1dbda0cddc
848842
.p2align 2, 0x0
849-
L_OBJC_IMAGE_INFO_2b1b3a94e0ece2e5:
843+
L_OBJC_IMAGE_INFO_4539fd1dbda0cddc:
850844
.asciz "\000\000\000\000@\000\000"
851845

852846
.section __TEXT,__objc_methname,cstring_literals
@@ -861,9 +855,9 @@ L_OBJC_SELECTOR_REFERENCES_2b1b3a94e0ece2e5:
861855
.long L_OBJC_METH_VAR_NAME_2b1b3a94e0ece2e5
862856

863857
.section __DATA,__objc_imageinfo,regular,no_dead_strip
864-
.globl L_OBJC_IMAGE_INFO_f7f521670860b0ce
858+
.globl L_OBJC_IMAGE_INFO_2b1b3a94e0ece2e5
865859
.p2align 2, 0x0
866-
L_OBJC_IMAGE_INFO_f7f521670860b0ce:
860+
L_OBJC_IMAGE_INFO_2b1b3a94e0ece2e5:
867861
.asciz "\000\000\000\000@\000\000"
868862

869863
.section __TEXT,__objc_methname,cstring_literals
@@ -878,9 +872,9 @@ L_OBJC_SELECTOR_REFERENCES_f7f521670860b0ce:
878872
.long L_OBJC_METH_VAR_NAME_f7f521670860b0ce
879873

880874
.section __DATA,__objc_imageinfo,regular,no_dead_strip
881-
.globl L_OBJC_IMAGE_INFO_6addfcf634c6232f
875+
.globl L_OBJC_IMAGE_INFO_f7f521670860b0ce
882876
.p2align 2, 0x0
883-
L_OBJC_IMAGE_INFO_6addfcf634c6232f:
877+
L_OBJC_IMAGE_INFO_f7f521670860b0ce:
884878
.asciz "\000\000\000\000@\000\000"
885879

886880
.section __TEXT,__objc_methname,cstring_literals
@@ -895,9 +889,9 @@ L_OBJC_SELECTOR_REFERENCES_6addfcf634c6232f:
895889
.long L_OBJC_METH_VAR_NAME_6addfcf634c6232f
896890

897891
.section __DATA,__objc_imageinfo,regular,no_dead_strip
898-
.globl L_OBJC_IMAGE_INFO_4a8c690dbc9d8166
892+
.globl L_OBJC_IMAGE_INFO_6addfcf634c6232f
899893
.p2align 2, 0x0
900-
L_OBJC_IMAGE_INFO_4a8c690dbc9d8166:
894+
L_OBJC_IMAGE_INFO_6addfcf634c6232f:
901895
.asciz "\000\000\000\000@\000\000"
902896

903897
.section __TEXT,__objc_methname,cstring_literals
@@ -911,6 +905,12 @@ L_OBJC_METH_VAR_NAME_4a8c690dbc9d8166:
911905
L_OBJC_SELECTOR_REFERENCES_4a8c690dbc9d8166:
912906
.long L_OBJC_METH_VAR_NAME_4a8c690dbc9d8166
913907

908+
.section __DATA,__objc_imageinfo,regular,no_dead_strip
909+
.globl L_OBJC_IMAGE_INFO_4a8c690dbc9d8166
910+
.p2align 2, 0x0
911+
L_OBJC_IMAGE_INFO_4a8c690dbc9d8166:
912+
.asciz "\000\000\000\000@\000\000"
913+
914914
.section __DATA,__nl_symbol_ptr,non_lazy_symbol_pointers
915915
.p2align 2, 0x0
916916
LL_OBJC_CLASSLIST_REFERENCES_$_NSObject$non_lazy_ptr:

crates/test-assembly/crates/test_declare_class/expected/apple-old-x86.s

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -831,12 +831,6 @@ l_anon.[ID].21:
831831
.long l_anon.[ID].16
832832
.asciz "\017\000\000"
833833

834-
.section __OBJC,__image_info
835-
.globl L_OBJC_IMAGE_INFO_d874ee9262978be2
836-
.p2align 2, 0x0
837-
L_OBJC_IMAGE_INFO_d874ee9262978be2:
838-
.asciz "\000\000\000\000@\000\000"
839-
840834
.section __TEXT,__cstring,cstring_literals
841835
.globl L_OBJC_METH_VAR_NAME_d874ee9262978be2
842836
L_OBJC_METH_VAR_NAME_d874ee9262978be2:
@@ -849,9 +843,9 @@ L_OBJC_SELECTOR_REFERENCES_d874ee9262978be2:
849843
.long L_OBJC_METH_VAR_NAME_d874ee9262978be2
850844

851845
.section __OBJC,__image_info
852-
.globl L_OBJC_IMAGE_INFO_4539fd1dbda0cddc
846+
.globl L_OBJC_IMAGE_INFO_d874ee9262978be2
853847
.p2align 2, 0x0
854-
L_OBJC_IMAGE_INFO_4539fd1dbda0cddc:
848+
L_OBJC_IMAGE_INFO_d874ee9262978be2:
855849
.asciz "\000\000\000\000@\000\000"
856850

857851
.section __TEXT,__cstring,cstring_literals
@@ -866,9 +860,9 @@ L_OBJC_SELECTOR_REFERENCES_4539fd1dbda0cddc:
866860
.long L_OBJC_METH_VAR_NAME_4539fd1dbda0cddc
867861

868862
.section __OBJC,__image_info
869-
.globl L_OBJC_IMAGE_INFO_2b1b3a94e0ece2e5
863+
.globl L_OBJC_IMAGE_INFO_4539fd1dbda0cddc
870864
.p2align 2, 0x0
871-
L_OBJC_IMAGE_INFO_2b1b3a94e0ece2e5:
865+
L_OBJC_IMAGE_INFO_4539fd1dbda0cddc:
872866
.asciz "\000\000\000\000@\000\000"
873867

874868
.section __TEXT,__cstring,cstring_literals
@@ -883,9 +877,9 @@ L_OBJC_SELECTOR_REFERENCES_2b1b3a94e0ece2e5:
883877
.long L_OBJC_METH_VAR_NAME_2b1b3a94e0ece2e5
884878

885879
.section __OBJC,__image_info
886-
.globl L_OBJC_IMAGE_INFO_f7f521670860b0ce
880+
.globl L_OBJC_IMAGE_INFO_2b1b3a94e0ece2e5
887881
.p2align 2, 0x0
888-
L_OBJC_IMAGE_INFO_f7f521670860b0ce:
882+
L_OBJC_IMAGE_INFO_2b1b3a94e0ece2e5:
889883
.asciz "\000\000\000\000@\000\000"
890884

891885
.section __TEXT,__cstring,cstring_literals
@@ -900,9 +894,9 @@ L_OBJC_SELECTOR_REFERENCES_f7f521670860b0ce:
900894
.long L_OBJC_METH_VAR_NAME_f7f521670860b0ce
901895

902896
.section __OBJC,__image_info
903-
.globl L_OBJC_IMAGE_INFO_6addfcf634c6232f
897+
.globl L_OBJC_IMAGE_INFO_f7f521670860b0ce
904898
.p2align 2, 0x0
905-
L_OBJC_IMAGE_INFO_6addfcf634c6232f:
899+
L_OBJC_IMAGE_INFO_f7f521670860b0ce:
906900
.asciz "\000\000\000\000@\000\000"
907901

908902
.section __TEXT,__cstring,cstring_literals
@@ -917,9 +911,9 @@ L_OBJC_SELECTOR_REFERENCES_6addfcf634c6232f:
917911
.long L_OBJC_METH_VAR_NAME_6addfcf634c6232f
918912

919913
.section __OBJC,__image_info
920-
.globl L_OBJC_IMAGE_INFO_4a8c690dbc9d8166
914+
.globl L_OBJC_IMAGE_INFO_6addfcf634c6232f
921915
.p2align 2, 0x0
922-
L_OBJC_IMAGE_INFO_4a8c690dbc9d8166:
916+
L_OBJC_IMAGE_INFO_6addfcf634c6232f:
923917
.asciz "\000\000\000\000@\000\000"
924918

925919
.section __TEXT,__cstring,cstring_literals
@@ -933,6 +927,12 @@ L_OBJC_METH_VAR_NAME_4a8c690dbc9d8166:
933927
L_OBJC_SELECTOR_REFERENCES_4a8c690dbc9d8166:
934928
.long L_OBJC_METH_VAR_NAME_4a8c690dbc9d8166
935929

930+
.section __OBJC,__image_info
931+
.globl L_OBJC_IMAGE_INFO_4a8c690dbc9d8166
932+
.p2align 2, 0x0
933+
L_OBJC_IMAGE_INFO_4a8c690dbc9d8166:
934+
.asciz "\000\000\000\000@\000\000"
935+
936936
.section __IMPORT,__pointers,non_lazy_symbol_pointers
937937
LL_OBJC_CLASS_REFERENCES_NSObject$non_lazy_ptr:
938938
.indirect_symbol L_OBJC_CLASS_REFERENCES_NSObject

0 commit comments

Comments
 (0)