error[E0658]: the `#[rustc_main]` attribute is used internally to specify test entry point function
  --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:14:1
   |
LL | #![rustc_main]
   | ^^^^^^^^^^^^^^
   |
   = help: add `#![feature(rustc_attrs)]` to the crate attributes to enable
   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date

error: valid forms for the attribute are `#[inline]` and `#[inline(always|never)]`
  --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:47:5
   |
LL |     #[inline = "2100"] fn f() { }
   |     ^^^^^^^^^^^^^^^^^^
   |
   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
   = note: for more information, see issue #57571 <https://github.com/rust-lang/rust/issues/57571>
   = note: `#[deny(ill_formed_attribute_input)]` on by default

error: `start` attribute can only be used on functions
  --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:126:1
   |
LL | #[start]
   | ^^^^^^^^

error: `start` attribute can only be used on functions
  --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:129:17
   |
LL |     mod inner { #![start] }
   |                 ^^^^^^^^^

error: `start` attribute can only be used on functions
  --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:134:5
   |
LL |     #[start] struct S;
   |     ^^^^^^^^

error: `start` attribute can only be used on functions
  --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:137:5
   |
LL |     #[start] type T = S;
   |     ^^^^^^^^

error: `start` attribute can only be used on functions
  --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:140:5
   |
LL |     #[start] impl S { }
   |     ^^^^^^^^

error[E0518]: attribute should be applied to function or closure
  --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:32:1
   |
LL |   #[inline]
   |   ^^^^^^^^^
LL |
LL | / mod inline {
LL | |
LL | |
LL | |
...  |
LL | |
LL | | }
   | |_- not a function or closure

error: attribute should be applied to an `extern crate` item
  --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:66:1
   |
LL |   #[no_link]
   |   ^^^^^^^^^^
LL |
LL | / mod no_link {
LL | |
LL | |
LL | |     mod inner { #![no_link] }
...  |
LL | |
LL | | }
   | |_- not an `extern crate` item

error: attribute should be applied to a free function, impl method or static
  --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:92:1
   |
LL |   #[export_name = "2200"]
   |   ^^^^^^^^^^^^^^^^^^^^^^^
LL |
LL | / mod export_name {
LL | |
LL | |
LL | |     mod inner { #![export_name="2200"] }
...  |
LL | |     }
LL | | }
   | |_- not a free function, impl method or static

error[E0517]: attribute should be applied to a struct, enum, or union
  --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:144:8
   |
LL |   #[repr(C)]
   |          ^
LL |
LL | / mod repr {
LL | |
LL | |     mod inner { #![repr(C)] }
LL | |
...  |
LL | |
LL | | }
   | |_- not a struct, enum, or union

error[E0517]: attribute should be applied to a struct, enum, or union
  --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:168:8
   |
LL |   #[repr(Rust)]
   |          ^^^^
LL |
LL | / mod repr_rust {
LL | |
LL | |     mod inner { #![repr(Rust)] }
LL | |
...  |
LL | |
LL | | }
   | |_- not a struct, enum, or union

error: attribute should be applied to an `extern crate` item
  --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:26:1
   |
LL | #![no_link]
   | ^^^^^^^^^^^ not an `extern crate` item

error: attribute should be applied to a free function, impl method or static
  --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:28:1
   |
LL | #![export_name = "2200"]
   | ^^^^^^^^^^^^^^^^^^^^^^^^ not a free function, impl method or static

error[E0518]: attribute should be applied to function or closure
  --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:30:1
   |
LL | #![inline]
   | ^^^^^^^^^^ not a function or closure

error: `macro_export` attribute cannot be used at crate level
  --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:12:1
   |
LL | #![macro_export]
   | ^^^^^^^^^^^^^^^^
...
LL | mod inline {
   |     ------ the inner attribute doesn't annotate this module
   |
help: perhaps you meant to use an outer attribute
   |
LL - #![macro_export]
LL + #[macro_export]
   |

error: `rustc_main` attribute cannot be used at crate level
  --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:14:1
   |
LL | #![rustc_main]
   | ^^^^^^^^^^^^^^
...
LL | mod inline {
   |     ------ the inner attribute doesn't annotate this module
   |
help: perhaps you meant to use an outer attribute
   |
LL - #![rustc_main]
LL + #[rustc_main]
   |

error: `start` attribute cannot be used at crate level
  --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:17:1
   |
LL | #![start]
   | ^^^^^^^^^
...
LL | mod inline {
   |     ------ the inner attribute doesn't annotate this module
   |
help: perhaps you meant to use an outer attribute
   |
LL - #![start]
LL + #[start]
   |

error: `repr` attribute cannot be used at crate level
  --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:19:1
   |
LL | #![repr()]
   | ^^^^^^^^^^
...
LL | mod inline {
   |     ------ the inner attribute doesn't annotate this module
   |
help: perhaps you meant to use an outer attribute
   |
LL - #![repr()]
LL + #[repr()]
   |

error: `path` attribute cannot be used at crate level
  --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:21:1
   |
LL | #![path = "3800"]
   | ^^^^^^^^^^^^^^^^^
...
LL | mod inline {
   |     ------ the inner attribute doesn't annotate this module
   |
help: perhaps you meant to use an outer attribute
   |
LL - #![path = "3800"]
LL + #[path = "3800"]
   |

error: `automatically_derived` attribute cannot be used at crate level
  --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:23:1
   |
LL | #![automatically_derived]
   | ^^^^^^^^^^^^^^^^^^^^^^^^^
...
LL | mod inline {
   |     ------ the inner attribute doesn't annotate this module
   |
help: perhaps you meant to use an outer attribute
   |
LL - #![automatically_derived]
LL + #[automatically_derived]
   |

error[E0518]: attribute should be applied to function or closure
  --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:43:17
   |
LL |     mod inner { #![inline] }
   |     ------------^^^^^^^^^^-- not a function or closure

error[E0518]: attribute should be applied to function or closure
  --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:53:5
   |
LL |     #[inline] struct S;
   |     ^^^^^^^^^ --------- not a function or closure

error[E0518]: attribute should be applied to function or closure
  --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:57:5
   |
LL |     #[inline] type T = S;
   |     ^^^^^^^^^ ----------- not a function or closure

error[E0518]: attribute should be applied to function or closure
  --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:61:5
   |
LL |     #[inline] impl S { }
   |     ^^^^^^^^^ ---------- not a function or closure

error: attribute should be applied to an `extern crate` item
  --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:71:17
   |
LL |     mod inner { #![no_link] }
   |     ------------^^^^^^^^^^^-- not an `extern crate` item

error: attribute should be applied to an `extern crate` item
  --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:75:5
   |
LL |     #[no_link] fn f() { }
   |     ^^^^^^^^^^ ---------- not an `extern crate` item

error: attribute should be applied to an `extern crate` item
  --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:79:5
   |
LL |     #[no_link] struct S;
   |     ^^^^^^^^^^ --------- not an `extern crate` item

error: attribute should be applied to an `extern crate` item
  --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:83:5
   |
LL |     #[no_link]type T = S;
   |     ^^^^^^^^^^----------- not an `extern crate` item

error: attribute should be applied to an `extern crate` item
  --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:87:5
   |
LL |     #[no_link] impl S { }
   |     ^^^^^^^^^^ ---------- not an `extern crate` item

error: attribute should be applied to a free function, impl method or static
  --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:97:17
   |
LL |     mod inner { #![export_name="2200"] }
   |     ------------^^^^^^^^^^^^^^^^^^^^^^-- not a free function, impl method or static

error: attribute should be applied to a free function, impl method or static
  --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:103:5
   |
LL |     #[export_name = "2200"] struct S;
   |     ^^^^^^^^^^^^^^^^^^^^^^^ --------- not a free function, impl method or static

error: attribute should be applied to a free function, impl method or static
  --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:107:5
   |
LL |     #[export_name = "2200"] type T = S;
   |     ^^^^^^^^^^^^^^^^^^^^^^^ ----------- not a free function, impl method or static

error: attribute should be applied to a free function, impl method or static
  --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:111:5
   |
LL |     #[export_name = "2200"] impl S { }
   |     ^^^^^^^^^^^^^^^^^^^^^^^ ---------- not a free function, impl method or static

error: attribute should be applied to a free function, impl method or static
  --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:116:9
   |
LL |         #[export_name = "2200"] fn foo();
   |         ^^^^^^^^^^^^^^^^^^^^^^^ --------- not a free function, impl method or static

error: attribute should be applied to a free function, impl method or static
  --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:120:9
   |
LL |         #[export_name = "2200"] fn bar() {}
   |         ^^^^^^^^^^^^^^^^^^^^^^^ ----------- not a free function, impl method or static

error[E0517]: attribute should be applied to a struct, enum, or union
  --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:148:25
   |
LL |     mod inner { #![repr(C)] }
   |     --------------------^---- not a struct, enum, or union

error[E0517]: attribute should be applied to a struct, enum, or union
  --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:152:12
   |
LL |     #[repr(C)] fn f() { }
   |            ^   ---------- not a struct, enum, or union

error[E0517]: attribute should be applied to a struct, enum, or union
  --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:158:12
   |
LL |     #[repr(C)] type T = S;
   |            ^   ----------- not a struct, enum, or union

error[E0517]: attribute should be applied to a struct, enum, or union
  --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:162:12
   |
LL |     #[repr(C)] impl S { }
   |            ^   ---------- not a struct, enum, or union

error[E0517]: attribute should be applied to a struct, enum, or union
  --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:172:25
   |
LL |     mod inner { #![repr(Rust)] }
   |     --------------------^^^^---- not a struct, enum, or union

error[E0517]: attribute should be applied to a struct, enum, or union
  --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:176:12
   |
LL |     #[repr(Rust)] fn f() { }
   |            ^^^^   ---------- not a struct, enum, or union

error[E0517]: attribute should be applied to a struct, enum, or union
  --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:182:12
   |
LL |     #[repr(Rust)] type T = S;
   |            ^^^^   ----------- not a struct, enum, or union

error[E0517]: attribute should be applied to a struct, enum, or union
  --> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:186:12
   |
LL |     #[repr(Rust)] impl S { }
   |            ^^^^   ---------- not a struct, enum, or union

error: aborting due to 44 previous errors

Some errors have detailed explanations: E0517, E0518, E0658.
For more information about an error, try `rustc --explain E0517`.
