diff --git a/clang/include/clang/Basic/Attr.td b/clang/include/clang/Basic/Attr.td --- a/clang/include/clang/Basic/Attr.td +++ b/clang/include/clang/Basic/Attr.td @@ -2310,6 +2310,7 @@ let Spellings = [GNU<"swift_attr">]; let Args = [StringArgument<"Attribute">]; let Documentation = [SwiftAttrDocs]; + let PragmaAttributeSupport = 1; } def SwiftBridge : InheritableAttr { diff --git a/clang/test/AST/attr-swift_attr.m b/clang/test/AST/attr-swift_attr.m --- a/clang/test/AST/attr-swift_attr.m +++ b/clang/test/AST/attr-swift_attr.m @@ -4,5 +4,13 @@ @interface View @end -// CHECK: InterfaceDecl {{.*}} View +// CHECK-LABEL: InterfaceDecl {{.*}} View // CHECK-NEXT: SwiftAttrAttr {{.*}} "@actor" + +#pragma clang attribute push(__attribute__((swift_attr("@sendable"))), apply_to=objc_interface) +@interface Contact +@end +#pragma clang attribute pop + +// CHECK-LABEL: InterfaceDecl {{.*}} Contact +// CHECK-NEXT: SwiftAttrAttr {{.*}} "@sendable" diff --git a/clang/test/Misc/pragma-attribute-supported-attributes-list.test b/clang/test/Misc/pragma-attribute-supported-attributes-list.test --- a/clang/test/Misc/pragma-attribute-supported-attributes-list.test +++ b/clang/test/Misc/pragma-attribute-supported-attributes-list.test @@ -163,6 +163,7 @@ // CHECK-NEXT: SwiftAsyncContext (SubjectMatchRule_variable_is_parameter) // CHECK-NEXT: SwiftAsyncError (SubjectMatchRule_function, SubjectMatchRule_objc_method) // CHECK-NEXT: SwiftAsyncName (SubjectMatchRule_objc_method, SubjectMatchRule_function) +// CHECK-NEXT: SwiftAttr () // CHECK-NEXT: SwiftBridgedTypedef (SubjectMatchRule_type_alias) // CHECK-NEXT: SwiftContext (SubjectMatchRule_variable_is_parameter) // CHECK-NEXT: SwiftError (SubjectMatchRule_function, SubjectMatchRule_objc_method)