]> git.lizzy.rs Git - rust.git/blob - src/test/ui/linkage-attr/link-attr-validation-late.rs
b454fbd0ed117f88b223d13fc0f261d3fd326930
[rust.git] / src / test / ui / linkage-attr / link-attr-validation-late.rs
1 #![feature(native_link_modifiers_verbatim)]
2 #![feature(link_cfg)]
3
4 // Top-level ill-formed
5 #[link(name = "...", "literal")] //~ ERROR unexpected `#[link]` argument
6 #[link(name = "...", unknown)] //~ ERROR unexpected `#[link]` argument
7 extern "C" {}
8
9 // Duplicate arguments
10 #[link(name = "foo", name = "bar")] //~ ERROR multiple `name` arguments
11 #[link(name = "...", kind = "dylib", kind = "bar")] //~ ERROR multiple `kind` arguments
12 #[link(name = "...", modifiers = "+verbatim", modifiers = "bar")] //~ ERROR multiple `modifiers` arguments
13 #[link(name = "...", cfg(FALSE), cfg(FALSE))] //~ ERROR multiple `cfg` arguments
14 #[link(wasm_import_module = "foo", wasm_import_module = "bar")] //~ ERROR multiple `wasm_import_module` arguments
15 extern "C" {}
16
17 // Ill-formed arguments
18 #[link(name)] //~ ERROR link name must be of the form `name = "string"`
19               //~| ERROR `#[link]` attribute requires a `name = "string"` argument
20 #[link(name())] //~ ERROR link name must be of the form `name = "string"`
21               //~| ERROR `#[link]` attribute requires a `name = "string"` argument
22 #[link(name = "...", kind)] //~ ERROR link kind must be of the form `kind = "string"`
23 #[link(name = "...", kind())] //~ ERROR link kind must be of the form `kind = "string"`
24 #[link(name = "...", modifiers)] //~ ERROR link modifiers must be of the form `modifiers = "string"`
25 #[link(name = "...", modifiers())] //~ ERROR link modifiers must be of the form `modifiers = "string"`
26 #[link(name = "...", cfg)] //~ ERROR link cfg must be of the form `cfg(/* predicate */)`
27 #[link(name = "...", cfg = "literal")] //~ ERROR link cfg must be of the form `cfg(/* predicate */)`
28 #[link(name = "...", cfg("literal"))] //~ ERROR link cfg must have a single predicate argument
29 #[link(name = "...", wasm_import_module)] //~ ERROR wasm import module must be of the form `wasm_import_module = "string"`
30 #[link(name = "...", wasm_import_module())] //~ ERROR wasm import module must be of the form `wasm_import_module = "string"`
31 extern "C" {}
32
33 // Basic modifier validation
34 #[link(name = "...", modifiers = "")] //~ ERROR invalid linking modifier syntax, expected '+' or '-' prefix
35 #[link(name = "...", modifiers = "no-plus-minus")] //~ ERROR invalid linking modifier syntax, expected '+' or '-' prefix
36 #[link(name = "...", modifiers = "+unknown")] //~ ERROR unknown linking modifier `unknown`
37 #[link(name = "...", modifiers = "+verbatim,+verbatim")] //~ ERROR multiple `verbatim` modifiers
38 extern "C" {}
39
40 fn main() {}