@@ -21,6 +21,13 @@ __attribute__ ((visibility ("hidden"))) int visibility_var;
2121
2222__thread __attribute__ ((tls_model (" local-exec" ))) int tls_model_var;
2323
24+ __attribute__ ((availability(macos, introduced=10.15 , deprecated=12.0 , obsoleted=13.0 , strict, replacement=" new_func" ))) int availability_var_all;
25+ __attribute__ ((availability(macos, unavailable, message=" use new API" ))) int availability_var_unavailable;
26+
27+ #pragma clang attribute push(__attribute__((availability(macos, introduced=11.0))), apply_to=variable)
28+ int availability_var_pragma;
29+ #pragma clang attribute pop
30+
2431// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py
2532// using --filters=VarDecl
2633
@@ -529,3 +536,154 @@ __thread __attribute__ ((tls_model ("local-exec"))) int tls_model_var;
529536// CHECK-NEXT: }
530537// CHECK-NEXT: ]
531538// CHECK-NEXT: }
539+
540+
541+ // CHECK-NOT: {{^}}Dumping
542+ // CHECK: "kind": "VarDecl",
543+ // CHECK-NEXT: "loc": {
544+ // CHECK-NEXT: "offset": 888,
545+ // CHECK-NEXT: "line": 24,
546+ // CHECK-NEXT: "col": 125,
547+ // CHECK-NEXT: "tokLen": 20
548+ // CHECK-NEXT: },
549+ // CHECK-NEXT: "range": {
550+ // CHECK-NEXT: "begin": {
551+ // CHECK-NEXT: "offset": 764,
552+ // CHECK-NEXT: "col": 1,
553+ // CHECK-NEXT: "tokLen": 13
554+ // CHECK-NEXT: },
555+ // CHECK-NEXT: "end": {
556+ // CHECK-NEXT: "offset": 888,
557+ // CHECK-NEXT: "col": 125,
558+ // CHECK-NEXT: "tokLen": 20
559+ // CHECK-NEXT: }
560+ // CHECK-NEXT: },
561+ // CHECK-NEXT: "name": "availability_var_all",
562+ // CHECK-NEXT: "mangledName": "availability_var_all",
563+ // CHECK-NEXT: "type": {
564+ // CHECK-NEXT: "qualType": "int"
565+ // CHECK-NEXT: },
566+ // CHECK-NEXT: "inner": [
567+ // CHECK-NEXT: {
568+ // CHECK-NEXT: "id": "0x{{.*}}",
569+ // CHECK-NEXT: "kind": "AvailabilityAttr",
570+ // CHECK-NEXT: "range": {
571+ // CHECK-NEXT: "begin": {
572+ // CHECK-NEXT: "offset": 779,
573+ // CHECK-NEXT: "col": 16,
574+ // CHECK-NEXT: "tokLen": 12
575+ // CHECK-NEXT: },
576+ // CHECK-NEXT: "end": {
577+ // CHECK-NEXT: "offset": 880,
578+ // CHECK-NEXT: "col": 117,
579+ // CHECK-NEXT: "tokLen": 1
580+ // CHECK-NEXT: }
581+ // CHECK-NEXT: },
582+ // CHECK-NEXT: "platform": "macos",
583+ // CHECK-NEXT: "introduced": "10.15",
584+ // CHECK-NEXT: "deprecated": "12.0",
585+ // CHECK-NEXT: "obsoleted": "13.0",
586+ // CHECK-NEXT: "strict": true,
587+ // CHECK-NEXT: "replacement": "new_func"
588+ // CHECK-NEXT: }
589+ // CHECK-NEXT: ]
590+ // CHECK-NEXT: }
591+
592+
593+ // CHECK-NOT: {{^}}Dumping
594+ // CHECK: "kind": "VarDecl",
595+ // CHECK-NEXT: "loc": {
596+ // CHECK-NEXT: "offset": 987,
597+ // CHECK-NEXT: "line": 25,
598+ // CHECK-NEXT: "col": 78,
599+ // CHECK-NEXT: "tokLen": 28
600+ // CHECK-NEXT: },
601+ // CHECK-NEXT: "range": {
602+ // CHECK-NEXT: "begin": {
603+ // CHECK-NEXT: "offset": 910,
604+ // CHECK-NEXT: "col": 1,
605+ // CHECK-NEXT: "tokLen": 13
606+ // CHECK-NEXT: },
607+ // CHECK-NEXT: "end": {
608+ // CHECK-NEXT: "offset": 987,
609+ // CHECK-NEXT: "col": 78,
610+ // CHECK-NEXT: "tokLen": 28
611+ // CHECK-NEXT: }
612+ // CHECK-NEXT: },
613+ // CHECK-NEXT: "name": "availability_var_unavailable",
614+ // CHECK-NEXT: "mangledName": "availability_var_unavailable",
615+ // CHECK-NEXT: "type": {
616+ // CHECK-NEXT: "qualType": "int"
617+ // CHECK-NEXT: },
618+ // CHECK-NEXT: "inner": [
619+ // CHECK-NEXT: {
620+ // CHECK-NEXT: "id": "0x{{.*}}",
621+ // CHECK-NEXT: "kind": "AvailabilityAttr",
622+ // CHECK-NEXT: "range": {
623+ // CHECK-NEXT: "begin": {
624+ // CHECK-NEXT: "offset": 925,
625+ // CHECK-NEXT: "col": 16,
626+ // CHECK-NEXT: "tokLen": 12
627+ // CHECK-NEXT: },
628+ // CHECK-NEXT: "end": {
629+ // CHECK-NEXT: "offset": 979,
630+ // CHECK-NEXT: "col": 70,
631+ // CHECK-NEXT: "tokLen": 1
632+ // CHECK-NEXT: }
633+ // CHECK-NEXT: },
634+ // CHECK-NEXT: "platform": "macos",
635+ // CHECK-NEXT: "unavailable": true,
636+ // CHECK-NEXT: "message": "use new API"
637+ // CHECK-NEXT: }
638+ // CHECK-NEXT: ]
639+ // CHECK-NEXT: }
640+
641+
642+ // CHECK-NOT: {{^}}Dumping
643+ // CHECK: "kind": "VarDecl",
644+ // CHECK-NEXT: "loc": {
645+ // CHECK-NEXT: "offset": 1125,
646+ // CHECK-NEXT: "line": 28,
647+ // CHECK-NEXT: "col": 5,
648+ // CHECK-NEXT: "tokLen": 23
649+ // CHECK-NEXT: },
650+ // CHECK-NEXT: "range": {
651+ // CHECK-NEXT: "begin": {
652+ // CHECK-NEXT: "offset": 1121,
653+ // CHECK-NEXT: "col": 1,
654+ // CHECK-NEXT: "tokLen": 3
655+ // CHECK-NEXT: },
656+ // CHECK-NEXT: "end": {
657+ // CHECK-NEXT: "offset": 1125,
658+ // CHECK-NEXT: "col": 5,
659+ // CHECK-NEXT: "tokLen": 23
660+ // CHECK-NEXT: }
661+ // CHECK-NEXT: },
662+ // CHECK-NEXT: "name": "availability_var_pragma",
663+ // CHECK-NEXT: "mangledName": "availability_var_pragma",
664+ // CHECK-NEXT: "type": {
665+ // CHECK-NEXT: "qualType": "int"
666+ // CHECK-NEXT: },
667+ // CHECK-NEXT: "inner": [
668+ // CHECK-NEXT: {
669+ // CHECK-NEXT: "id": "0x{{.*}}",
670+ // CHECK-NEXT: "kind": "AvailabilityAttr",
671+ // CHECK-NEXT: "range": {
672+ // CHECK-NEXT: "begin": {
673+ // CHECK-NEXT: "offset": 1062,
674+ // CHECK-NEXT: "line": 27,
675+ // CHECK-NEXT: "col": 45,
676+ // CHECK-NEXT: "tokLen": 12
677+ // CHECK-NEXT: },
678+ // CHECK-NEXT: "end": {
679+ // CHECK-NEXT: "offset": 1097,
680+ // CHECK-NEXT: "col": 80,
681+ // CHECK-NEXT: "tokLen": 1
682+ // CHECK-NEXT: }
683+ // CHECK-NEXT: },
684+ // CHECK-NEXT: "platform": "macos",
685+ // CHECK-NEXT: "introduced": "11.0",
686+ // CHECK-NEXT: "priority": 1
687+ // CHECK-NEXT: }
688+ // CHECK-NEXT: ]
689+ // CHECK-NEXT: }
0 commit comments