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: attribute must be of the form `#[inline]` or `#[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: 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: aborting due to 39 previous errors

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