1 | // RUN: %clang_cc1 -fsyntax-only -verify %s |
2 | |
3 | void function() __attribute__((external_source_symbol(language="Swift", defined_in="module", generated_declaration))); |
4 | |
5 | __attribute__((external_source_symbol(language="Swift", defined_in="module"))) |
6 | @interface I |
7 | |
8 | - (void)method __attribute__((external_source_symbol(defined_in= "module"))); |
9 | |
10 | @end |
11 | |
12 | enum E { |
13 | CaseA __attribute__((external_source_symbol(generated_declaration))), |
14 | CaseB __attribute__((external_source_symbol(generated_declaration, language="Swift"))) |
15 | } __attribute__((external_source_symbol(language = "Swift"))); |
16 | |
17 | void f2() |
18 | __attribute__((external_source_symbol())); // expected-error {{expected 'language', 'defined_in', or 'generated_declaration'}} |
19 | void f3() |
20 | __attribute__((external_source_symbol(invalid))); // expected-error {{expected 'language', 'defined_in', or 'generated_declaration'}} |
21 | void f4() |
22 | __attribute__((external_source_symbol(language))); // expected-error {{expected '=' after language}} |
23 | void f5() |
24 | __attribute__((external_source_symbol(language=))); // expected-error {{expected string literal for language name in 'external_source_symbol' attribute}} |
25 | void f6() |
26 | __attribute__((external_source_symbol(defined_in=20))); // expected-error {{expected string literal for source container name in 'external_source_symbol' attribute}} |
27 | |
28 | void f7() |
29 | __attribute__((external_source_symbol(generated_declaration, generated_declaration))); // expected-error {{duplicate 'generated_declaration' clause in an 'external_source_symbol' attribute}} |
30 | void f8() |
31 | __attribute__((external_source_symbol(language="Swift", language="Swift"))); // expected-error {{duplicate 'language' clause in an 'external_source_symbol' attribute}} |
32 | void f9() |
33 | __attribute__((external_source_symbol(defined_in="module", language="Swift", defined_in="foo"))); // expected-error {{duplicate 'defined_in' clause in an 'external_source_symbol' attribute}} |
34 | |
35 | void f10() |
36 | __attribute__((external_source_symbol(generated_declaration, language="Swift", defined_in="foo", generated_declaration, generated_declaration, language="Swift"))); // expected-error {{duplicate 'generated_declaration' clause in an 'external_source_symbol' attribute}} |
37 | |
38 | void f11() |
39 | __attribute__((external_source_symbol(language="Objective-C++", defined_in="Some file with spaces"))); |
40 | |
41 | void f12() |
42 | __attribute__((external_source_symbol(language="C Sharp", defined_in="file:////Hello world with spaces. cs"))); |
43 | |
44 | void f13() |
45 | __attribute__((external_source_symbol(language=Swift))); // expected-error {{expected string literal for language name in 'external_source_symbol' attribute}} |
46 | |
47 | void f14() |
48 | __attribute__((external_source_symbol(=))); // expected-error {{expected 'language', 'defined_in', or 'generated_declaration'}} |
49 | |
50 | void f15() |
51 | __attribute__((external_source_symbol(="Swift"))); // expected-error {{expected 'language', 'defined_in', or 'generated_declaration'}} |
52 | |
53 | void f16() |
54 | __attribute__((external_source_symbol("Swift", "module", generated_declaration))); // expected-error {{expected 'language', 'defined_in', or 'generated_declaration'}} |
55 | |
56 | void f17() |
57 | __attribute__((external_source_symbol(language="Swift", "generated_declaration"))); // expected-error {{expected 'language', 'defined_in', or 'generated_declaration'}} |
58 | |
59 | void f18() |
60 | __attribute__((external_source_symbol(language= =))); // expected-error {{expected string literal for language name in 'external_source_symbol' attribute}} |
61 | |
62 | void f19() |
63 | __attribute__((external_source_symbol(defined_in="module" language="swift"))); // expected-error {{expected ')'}} expected-note {{to match this '('}} |
64 | |
65 | void f20() |
66 | __attribute__((external_source_symbol(defined_in="module" language="swift" generated_declaration))); // expected-error {{expected ')'}} expected-note {{to match this '('}} |
67 | |
68 | void f21() |
69 | __attribute__((external_source_symbol(defined_in= language="swift"))); // expected-error {{expected string literal for source container name in 'external_source_symbol' attribute}} |
70 | |
71 | void f22() |
72 | __attribute__((external_source_symbol)); // expected-error {{'external_source_symbol' attribute takes at least 1 argument}} |
73 | |
74 | void f23() |
75 | __attribute__((external_source_symbol(defined_in=, language="swift" generated_declaration))); // expected-error {{expected string literal for source container name in 'external_source_symbol' attribute}} expected-error{{expected ')'}} expected-note{{to match this '('}} |
76 | |
77 | void f24() |
78 | __attribute__((external_source_symbol(language = generated_declaration))); // expected-error {{expected string literal for language name in 'external_source_symbol' attribute}} |
79 | |
80 | void f25() |
81 | __attribute__((external_source_symbol(defined_in=123, defined_in="module"))); // expected-error {{expected string literal for source container name in 'external_source_symbol'}} expected-error {{duplicate 'defined_in' clause in an 'external_source_symbol' attribute}} |
82 | |
83 | void f26() |
84 | __attribute__((external_source_symbol(language=Swift, language="Swift", error))); // expected-error {{expected string literal for language name in 'external_source_symbol'}} expected-error {{duplicate 'language' clause in an 'external_source_symbol' attribute}} expected-error {{expected 'language', 'defined_in', or 'generated_declaration'}} |
85 | |