brintos

brintos / llvm-project-archived public Read only

0
0
Text · 10.4 KiB · 264edde Raw
188 lines · plain
1// RUN: rm -rf %t && mkdir -p %t2 3// Build and check the unversioned module file.4// RUN: %clang_cc1 -fmodules -fblocks -fimplicit-module-maps -fmodules-cache-path=%t/ModulesCache/Unversioned -fdisable-module-hash -fapinotes-modules -fsyntax-only -I %S/Inputs/Headers -F %S/Inputs/Frameworks %s5// RUN: %clang_cc1 -ast-print %t/ModulesCache/Unversioned/VersionedKit.pcm | FileCheck -check-prefix=CHECK-UNVERSIONED %s6// RUN: %clang_cc1 -fmodules -fblocks -fimplicit-module-maps -fmodules-cache-path=%t/ModulesCache/Unversioned -fdisable-module-hash -fapinotes-modules -I %S/Inputs/Headers -F %S/Inputs/Frameworks %s -ast-dump -ast-dump-filter 'DUMP' | FileCheck -check-prefix=CHECK-DUMP -check-prefix=CHECK-UNVERSIONED-DUMP %s7 8// Build and check the versioned module file.9// RUN: %clang_cc1 -fmodules -fblocks -fimplicit-module-maps -fmodules-cache-path=%t/ModulesCache/Versioned -fdisable-module-hash -fapinotes-modules -fapinotes-swift-version=3 -fsyntax-only -I %S/Inputs/Headers -F %S/Inputs/Frameworks %s10// RUN: %clang_cc1 -ast-print %t/ModulesCache/Versioned/VersionedKit.pcm | FileCheck -check-prefix=CHECK-VERSIONED %s11// RUN: %clang_cc1 -fmodules -fblocks -fimplicit-module-maps -fmodules-cache-path=%t/ModulesCache/Versioned -fdisable-module-hash -fapinotes-modules -fapinotes-swift-version=3 -I %S/Inputs/Headers -F %S/Inputs/Frameworks %s -ast-dump -ast-dump-filter 'DUMP' | FileCheck -check-prefix=CHECK-DUMP -check-prefix=CHECK-VERSIONED-DUMP %s12 13#import <VersionedKit/VersionedKit.h>14 15// CHECK-UNVERSIONED: void moveToPointDUMP(double x, double y) __attribute__((swift_name("moveTo(x:y:)")));16// CHECK-VERSIONED:__attribute__((swift_name("moveTo(a:b:)"))) void moveToPointDUMP(double x, double y);17 18// CHECK-DUMP-LABEL: Dumping moveToPointDUMP19// CHECK-VERSIONED-DUMP: SwiftVersionedAdditionAttr {{.+}} Implicit 3.0 IsReplacedByActive{{$}}20// CHECK-VERSIONED-DUMP-NEXT: SwiftNameAttr {{.+}} "moveTo(x:y:)"21// CHECK-VERSIONED-DUMP-NEXT: SwiftNameAttr {{.+}} <<invalid sloc>> "moveTo(a:b:)"22// CHECK-UNVERSIONED-DUMP: SwiftNameAttr {{.+}} "moveTo(x:y:)"23// CHECK-UNVERSIONED-DUMP-NEXT: SwiftVersionedAdditionAttr {{.+}} Implicit 3.0{{$}}24// CHECK-UNVERSIONED-DUMP-NEXT: SwiftNameAttr {{.+}} <<invalid sloc>> "moveTo(a:b:)"25// CHECK-DUMP-NOT: Attr26 27// CHECK-DUMP-LABEL: Dumping unversionedRenameDUMP28// CHECK-DUMP: in VersionedKit unversionedRenameDUMP29// CHECK-DUMP-NEXT: SwiftVersionedAdditionAttr {{.+}} Implicit 0 IsReplacedByActive{{$}}30// CHECK-DUMP-NEXT: SwiftNameAttr {{.+}} "unversionedRename_HEADER()"31// CHECK-DUMP-NEXT: SwiftNameAttr {{.+}} "unversionedRename_NOTES()"32// CHECK-DUMP-NOT: Attr33 34// CHECK-DUMP-LABEL: Dumping TestGenericDUMP35// CHECK-VERSIONED-DUMP: SwiftImportAsNonGenericAttr {{.+}} <<invalid sloc>>36// CHECK-UNVERSIONED-DUMP: SwiftVersionedAdditionAttr {{.+}} Implicit 3.0{{$}}37// CHECK-UNVERSIONED-DUMP-NEXT: SwiftImportAsNonGenericAttr {{.+}} <<invalid sloc>>38// CHECK-DUMP-NOT: Attr39 40// CHECK-DUMP-LABEL: Dumping Swift3RenamedOnlyDUMP41// CHECK-DUMP: in VersionedKit Swift3RenamedOnlyDUMP42// CHECK-VERSIONED-DUMP-NEXT: SwiftVersionedRemovalAttr {{.+}} Implicit 3.0 {{[0-9]+}} IsReplacedByActive{{$}}43// CHECK-VERSIONED-DUMP-NEXT: SwiftNameAttr {{.+}} "SpecialSwift3Name"44// CHECK-UNVERSIONED-DUMP-NEXT: SwiftVersionedAdditionAttr {{.+}} Implicit 3.0{{$}}45// CHECK-UNVERSIONED-DUMP-NEXT: SwiftNameAttr {{.+}} <<invalid sloc>> "SpecialSwift3Name"46// CHECK-DUMP-NOT: Attr47 48// CHECK-DUMP-LABEL: Dumping Swift3RenamedAlsoDUMP49// CHECK-DUMP: in VersionedKit Swift3RenamedAlsoDUMP50// CHECK-VERSIONED-DUMP-NEXT: SwiftVersionedAdditionAttr {{.+}} Implicit 3.0 IsReplacedByActive{{$}}51// CHECK-VERSIONED-DUMP-NEXT: SwiftNameAttr {{.+}} <line:{{.+}}, col:{{.+}}> "Swift4Name"52// CHECK-VERSIONED-DUMP-NEXT: SwiftNameAttr {{.+}} "SpecialSwift3Also"53// CHECK-UNVERSIONED-DUMP-NEXT: SwiftNameAttr {{.+}} <line:{{.+}}, col:{{.+}}> "Swift4Name"54// CHECK-UNVERSIONED-DUMP-NEXT: SwiftVersionedAdditionAttr {{.+}} Implicit 3.0{{$}}55// CHECK-UNVERSIONED-DUMP-NEXT: SwiftNameAttr {{.+}} <<invalid sloc>> "SpecialSwift3Also"56// CHECK-DUMP-NOT: Attr57 58// CHECK-DUMP-LABEL: Dumping Swift4RenamedDUMP59// CHECK-DUMP: in VersionedKit Swift4RenamedDUMP60// CHECK-VERSIONED-DUMP-NEXT: SwiftVersionedRemovalAttr {{.+}} Implicit 4 {{[0-9]+}} IsReplacedByActive{{$}}61// CHECK-VERSIONED-DUMP-NEXT: SwiftNameAttr {{.+}} "SpecialSwift4Name"62// CHECK-UNVERSIONED-DUMP-NEXT: SwiftVersionedAdditionAttr {{.+}} Implicit 4{{$}}63// CHECK-UNVERSIONED-DUMP-NEXT: SwiftNameAttr {{.+}} <<invalid sloc>> "SpecialSwift4Name"64// CHECK-DUMP-NOT: Attr65 66// CHECK-DUMP-NOT: Dumping67 68// CHECK-UNVERSIONED: void acceptClosure(__attribute__((noescape)) void (^block)(void));69// CHECK-VERSIONED: void acceptClosure(void (^block)(void));70 71// CHECK-UNVERSIONED: void privateFunc(void) __attribute__((swift_private));72 73// CHECK-UNVERSIONED: typedef double MyDoubleWrapper __attribute__((swift_wrapper("struct")));74 75// CHECK-UNVERSIONED:      enum __attribute__((ns_error_domain(MyErrorDomain))) MyErrorCode {76// CHECK-UNVERSIONED-NEXT:     MyErrorCodeFailed = 177// CHECK-UNVERSIONED-NEXT: };78 79// CHECK-UNVERSIONED: __attribute__((swift_bridge("MyValueType")))80// CHECK-UNVERSIONED: @interface MyReferenceType81 82// CHECK-VERSIONED: void privateFunc(void);83 84// CHECK-VERSIONED: typedef double MyDoubleWrapper;85 86// CHECK-VERSIONED:      enum MyErrorCode {87// CHECK-VERSIONED-NEXT:     MyErrorCodeFailed = 188// CHECK-VERSIONED-NEXT: };89 90// CHECK-VERSIONED-NOT: __attribute__((swift_bridge("MyValueType")))91// CHECK-VERSIONED: @interface MyReferenceType92 93// CHECK-UNVERSIONED: __attribute__((swift_objc_members)94// CHECK-UNVERSIONED-NEXT: @interface TestProperties95// CHECK-VERSIONED-NOT: __attribute__((swift_objc_members)96// CHECK-VERSIONED: @interface TestProperties97 98// CHECK-UNVERSIONED-LABEL: enum __attribute__((flag_enum)) FlagEnum {99// CHECK-UNVERSIONED-NEXT:     FlagEnumA = 1,100// CHECK-UNVERSIONED-NEXT:     FlagEnumB = 2101// CHECK-UNVERSIONED-NEXT: };102// CHECK-UNVERSIONED-LABEL: enum __attribute__((flag_enum)) NewlyFlagEnum {103// CHECK-UNVERSIONED-NEXT:     NewlyFlagEnumA = 1,104// CHECK-UNVERSIONED-NEXT:     NewlyFlagEnumB = 2105// CHECK-UNVERSIONED-NEXT: };106// CHECK-UNVERSIONED-LABEL: enum __attribute__((flag_enum)) APINotedFlagEnum {107// CHECK-UNVERSIONED-NEXT:     APINotedFlagEnumA = 1,108// CHECK-UNVERSIONED-NEXT:     APINotedFlagEnumB = 2109// CHECK-UNVERSIONED-NEXT: };110// CHECK-UNVERSIONED-LABEL: enum  __attribute__((enum_extensibility("open"))) OpenEnum {111// CHECK-UNVERSIONED-NEXT:     OpenEnumA = 1112// CHECK-UNVERSIONED-NEXT: };113// CHECK-UNVERSIONED-LABEL: enum  __attribute__((enum_extensibility("open"))) NewlyOpenEnum {114// CHECK-UNVERSIONED-NEXT:     NewlyOpenEnumA = 1115// CHECK-UNVERSIONED-NEXT: };116// CHECK-UNVERSIONED-LABEL: enum  __attribute__((enum_extensibility("closed"))) NewlyClosedEnum {117// CHECK-UNVERSIONED-NEXT:     NewlyClosedEnumA = 1118// CHECK-UNVERSIONED-NEXT: };119// CHECK-UNVERSIONED-LABEL: enum  __attribute__((enum_extensibility("open"))) ClosedToOpenEnum {120// CHECK-UNVERSIONED-NEXT:     ClosedToOpenEnumA = 1121// CHECK-UNVERSIONED-NEXT: };122// CHECK-UNVERSIONED-LABEL: enum  __attribute__((enum_extensibility("closed"))) OpenToClosedEnum {123// CHECK-UNVERSIONED-NEXT:     OpenToClosedEnumA = 1124// CHECK-UNVERSIONED-NEXT: };125// CHECK-UNVERSIONED-LABEL: enum  __attribute__((enum_extensibility("open"))) APINotedOpenEnum {126// CHECK-UNVERSIONED-NEXT:     APINotedOpenEnumA = 1127// CHECK-UNVERSIONED-NEXT: };128// CHECK-UNVERSIONED-LABEL: enum  __attribute__((enum_extensibility("closed"))) APINotedClosedEnum {129// CHECK-UNVERSIONED-NEXT:     APINotedClosedEnumA = 1130// CHECK-UNVERSIONED-NEXT: };131 132// CHECK-VERSIONED-LABEL: enum __attribute__((flag_enum)) FlagEnum {133// CHECK-VERSIONED-NEXT:     FlagEnumA = 1,134// CHECK-VERSIONED-NEXT:     FlagEnumB = 2135// CHECK-VERSIONED-NEXT: };136// CHECK-VERSIONED-LABEL: enum NewlyFlagEnum {137// CHECK-VERSIONED-NEXT:     NewlyFlagEnumA = 1,138// CHECK-VERSIONED-NEXT:     NewlyFlagEnumB = 2139// CHECK-VERSIONED-NEXT: };140// CHECK-VERSIONED-LABEL: enum __attribute__((flag_enum)) APINotedFlagEnum {141// CHECK-VERSIONED-NEXT:     APINotedFlagEnumA = 1,142// CHECK-VERSIONED-NEXT:     APINotedFlagEnumB = 2143// CHECK-VERSIONED-NEXT: };144// CHECK-VERSIONED-LABEL: enum __attribute__((enum_extensibility("open"))) OpenEnum {145// CHECK-VERSIONED-NEXT:     OpenEnumA = 1146// CHECK-VERSIONED-NEXT: };147// CHECK-VERSIONED-LABEL: enum NewlyOpenEnum {148// CHECK-VERSIONED-NEXT:     NewlyOpenEnumA = 1149// CHECK-VERSIONED-NEXT: };150// CHECK-VERSIONED-LABEL: enum NewlyClosedEnum {151// CHECK-VERSIONED-NEXT:     NewlyClosedEnumA = 1152// CHECK-VERSIONED-NEXT: };153// CHECK-VERSIONED-LABEL: enum __attribute__((enum_extensibility("closed"))) ClosedToOpenEnum {154// CHECK-VERSIONED-NEXT:     ClosedToOpenEnumA = 1155// CHECK-VERSIONED-NEXT: };156// CHECK-VERSIONED-LABEL: enum __attribute__((enum_extensibility("open"))) OpenToClosedEnum {157// CHECK-VERSIONED-NEXT:     OpenToClosedEnumA = 1158// CHECK-VERSIONED-NEXT: };159// CHECK-VERSIONED-LABEL: enum __attribute__((enum_extensibility("open"))) APINotedOpenEnum {160// CHECK-VERSIONED-NEXT:     APINotedOpenEnumA = 1161// CHECK-VERSIONED-NEXT: };162// CHECK-VERSIONED-LABEL: enum __attribute__((enum_extensibility("closed"))) APINotedClosedEnum {163// CHECK-VERSIONED-NEXT:     APINotedClosedEnumA = 1164// CHECK-VERSIONED-NEXT: };165 166// These don't actually have versioned information, so we just check them once.167// CHECK-UNVERSIONED-LABEL: enum  __attribute__((enum_extensibility("open"))) SoonToBeCFEnum {168// CHECK-UNVERSIONED-NEXT:     SoonToBeCFEnumA = 1169// CHECK-UNVERSIONED-NEXT: };170// CHECK-UNVERSIONED-LABEL: enum  __attribute__((enum_extensibility("open"))) SoonToBeNSEnum {171// CHECK-UNVERSIONED-NEXT:     SoonToBeNSEnumA = 1172// CHECK-UNVERSIONED-NEXT: };173// CHECK-UNVERSIONED-LABEL: enum  __attribute__((enum_extensibility("open"))) __attribute__((flag_enum)) SoonToBeCFOptions {174// CHECK-UNVERSIONED-NEXT:     SoonToBeCFOptionsA = 1175// CHECK-UNVERSIONED-NEXT: };176// CHECK-UNVERSIONED-LABEL: enum  __attribute__((enum_extensibility("open"))) __attribute__((flag_enum)) SoonToBeNSOptions {177// CHECK-UNVERSIONED-NEXT:     SoonToBeNSOptionsA = 1178// CHECK-UNVERSIONED-NEXT: };179// CHECK-UNVERSIONED-LABEL: enum  __attribute__((enum_extensibility("closed"))) SoonToBeCFClosedEnum {180// CHECK-UNVERSIONED-NEXT:     SoonToBeCFClosedEnumA = 1181// CHECK-UNVERSIONED-NEXT: };182// CHECK-UNVERSIONED-LABEL: enum  __attribute__((enum_extensibility("closed"))) SoonToBeNSClosedEnum {183// CHECK-UNVERSIONED-NEXT:     SoonToBeNSClosedEnumA = 1184// CHECK-UNVERSIONED-NEXT: };185// CHECK-UNVERSIONED-LABEL: enum UndoAllThatHasBeenDoneToMe {186// CHECK-UNVERSIONED-NEXT:     UndoAllThatHasBeenDoneToMeA = 1187// CHECK-UNVERSIONED-NEXT: };188