1 // RUN: %clang_cc1 -verify -fsyntax-only %s
3 // expected-error@+1 {{'__swift_bridge__' attribute takes one argument}}
4 __attribute__((__swift_bridge__))
8 // expected-error@+1 {{expected string literal as argument of '__swift_bridge__' attribute}}
9 __attribute__((__swift_bridge__(1)))
13 // expected-error@+1 {{'__swift_bridge__' attribute takes one argument}}
14 __attribute__((__swift_bridge__("K", 1)))
19 // expected-error@+1 {{'__swift_bridge__' attribute only applies to tag types, typedefs, Objective-C interfaces, and Objective-C protocols}}
20 - (void)method __attribute__((__swift_bridge__("method")));
23 __attribute__((__swift_bridge__("Array")))
27 __attribute__((__swift_bridge__("ProtocolP")))
31 typedef NSArray *NSArrayAlias __attribute__((__swift_bridge__("ArrayAlias")));
33 struct __attribute__((__swift_bridge__("StructT"))) T {};
35 // Duplicate attributes with the same arguments are fine.
36 struct __attribute__((swift_bridge("foo"), swift_bridge("foo"))) S;
37 // Duplicate attributes with different arguments are not.
38 struct __attribute__((swift_bridge("foo"), swift_bridge("bar"))) S; // expected-warning {{attribute 'swift_bridge' is already applied with different arguments}}