Rollup merge of #68586 - Centril:repr-deny, r=pnkfelix

Make conflicting_repr_hints a deny-by-default c-future-compat lint

Closes https://github.com/rust-lang/rust/issues/68428.
cc https://github.com/rust-lang/rust/issues/68585.

r? @petrochenkov @pnkfelix
This commit is contained in:
Yuki Okushi 2020-01-29 18:56:26 +09:00 committed by GitHub
commit 8f1857a822
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 59 additions and 20 deletions

View file

@ -11,11 +11,13 @@ enum B {
}
#[repr(C, u64)] //~ ERROR conflicting representation hints
//~^ WARN this was previously accepted
enum C {
C,
}
#[repr(u32, u64)] //~ ERROR conflicting representation hints
//~^ WARN this was previously accepted
enum D {
D,
}

View file

@ -3,45 +3,52 @@ error[E0566]: conflicting representation hints
|
LL | #[repr(C, u64)]
| ^ ^^^
|
= note: `#[deny(conflicting_repr_hints)]` on by default
= 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 #68585 <https://github.com/rust-lang/rust/issues/68585>
error[E0566]: conflicting representation hints
--> $DIR/conflicting-repr-hints.rs:18:8
--> $DIR/conflicting-repr-hints.rs:19:8
|
LL | #[repr(u32, u64)]
| ^^^ ^^^
|
= 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 #68585 <https://github.com/rust-lang/rust/issues/68585>
error[E0587]: type has conflicting packed and align representation hints
--> $DIR/conflicting-repr-hints.rs:27:1
--> $DIR/conflicting-repr-hints.rs:29:1
|
LL | struct F(i32);
| ^^^^^^^^^^^^^^
error[E0587]: type has conflicting packed and align representation hints
--> $DIR/conflicting-repr-hints.rs:31:1
--> $DIR/conflicting-repr-hints.rs:33:1
|
LL | struct G(i32);
| ^^^^^^^^^^^^^^
error[E0587]: type has conflicting packed and align representation hints
--> $DIR/conflicting-repr-hints.rs:35:1
--> $DIR/conflicting-repr-hints.rs:37:1
|
LL | struct H(i32);
| ^^^^^^^^^^^^^^
error[E0634]: type has conflicting packed representation hints
--> $DIR/conflicting-repr-hints.rs:38:1
--> $DIR/conflicting-repr-hints.rs:40:1
|
LL | struct I(i32);
| ^^^^^^^^^^^^^^
error[E0634]: type has conflicting packed representation hints
--> $DIR/conflicting-repr-hints.rs:42:1
--> $DIR/conflicting-repr-hints.rs:44:1
|
LL | struct J(i32);
| ^^^^^^^^^^^^^^
error[E0587]: type has conflicting packed and align representation hints
--> $DIR/conflicting-repr-hints.rs:48:1
--> $DIR/conflicting-repr-hints.rs:50:1
|
LL | / union X {
LL | |
@ -50,7 +57,7 @@ LL | | }
| |_^
error[E0587]: type has conflicting packed and align representation hints
--> $DIR/conflicting-repr-hints.rs:55:1
--> $DIR/conflicting-repr-hints.rs:57:1
|
LL | / union Y {
LL | |
@ -59,7 +66,7 @@ LL | | }
| |_^
error[E0587]: type has conflicting packed and align representation hints
--> $DIR/conflicting-repr-hints.rs:62:1
--> $DIR/conflicting-repr-hints.rs:64:1
|
LL | / union Z {
LL | |

View file

@ -2,6 +2,7 @@
struct Foo(u64, u64);
#[repr(C)] //~ ERROR conflicting representation hints
//~^ WARN this was previously accepted
#[repr(simd)] //~ error: SIMD types are experimental
struct Bar(u64, u64);

View file

@ -8,7 +8,7 @@ LL | #[repr(simd)]
= help: add `#![feature(repr_simd)]` to the crate attributes to enable
error[E0658]: SIMD types are experimental and possibly buggy
--> $DIR/feature-gate-repr-simd.rs:5:1
--> $DIR/feature-gate-repr-simd.rs:6:1
|
LL | #[repr(simd)]
| ^^^^^^^^^^^^^
@ -21,8 +21,13 @@ error[E0566]: conflicting representation hints
|
LL | #[repr(C)]
| ^
LL |
LL | #[repr(simd)]
| ^^^^
|
= note: `#[deny(conflicting_repr_hints)]` on by default
= 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 #68585 <https://github.com/rust-lang/rust/issues/68585>
error: aborting due to 3 previous errors

View file

@ -1,10 +1,12 @@
#[repr(C, u8)] //~ ERROR conflicting representation hints
//~^ WARN this was previously accepted
enum Foo {
A,
B,
}
#[repr(C)] //~ ERROR conflicting representation hints
//~^ WARN this was previously accepted
#[repr(u8)]
enum Bar {
A,

View file

@ -3,14 +3,22 @@ error[E0566]: conflicting representation hints
|
LL | #[repr(C, u8)]
| ^ ^^
|
= note: `#[deny(conflicting_repr_hints)]` on by default
= 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 #68585 <https://github.com/rust-lang/rust/issues/68585>
error[E0566]: conflicting representation hints
--> $DIR/issue-47094.rs:7:8
--> $DIR/issue-47094.rs:8:8
|
LL | #[repr(C)]
| ^
LL |
LL | #[repr(u8)]
| ^^
|
= 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 #68585 <https://github.com/rust-lang/rust/issues/68585>
error: aborting due to 2 previous errors