diff options
| author | Manish Goregaokar <manishsmail@gmail.com> | 2020-07-14 13:19:37 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-07-14 13:19:37 -0700 |
| commit | c4fcf5a7a4e70073e2229641fedfd57a63f3dfed (patch) | |
| tree | 150cf5fc747ac145b72e6bf3c17c83a2585d61ff /src/test/ui/issues | |
| parent | aedb7c37b8dff924cbb569601fa2bc3219a209bb (diff) | |
| parent | d9485be595ee1655391697104b72ca005b0a9c80 (diff) | |
| download | rust-c4fcf5a7a4e70073e2229641fedfd57a63f3dfed.tar.gz rust-c4fcf5a7a4e70073e2229641fedfd57a63f3dfed.zip | |
Rollup merge of #74336 - davidtwco:issue-73112-cross-crate-packed-type-diagnostic, r=estebank
typeck: use `item_name` in cross-crate packed diag Fixes #73112. This PR replaces the use of `expect_local` and `hir().get` to fetch the identifier for a ADT with `item_name` - which works across crates.
Diffstat (limited to 'src/test/ui/issues')
| -rw-r--r-- | src/test/ui/issues/auxiliary/issue-73112.rs | 10 | ||||
| -rw-r--r-- | src/test/ui/issues/issue-73112.rs | 13 | ||||
| -rw-r--r-- | src/test/ui/issues/issue-73112.stderr | 20 |
3 files changed, 43 insertions, 0 deletions
diff --git a/src/test/ui/issues/auxiliary/issue-73112.rs b/src/test/ui/issues/auxiliary/issue-73112.rs new file mode 100644 index 00000000000..6210c29bbdc --- /dev/null +++ b/src/test/ui/issues/auxiliary/issue-73112.rs @@ -0,0 +1,10 @@ +#[repr(transparent)] +pub struct PageTableEntry { + entry: u64, +} + +#[repr(align(4096))] +#[repr(C)] +pub struct PageTable { + entries: [PageTableEntry; 512], +} diff --git a/src/test/ui/issues/issue-73112.rs b/src/test/ui/issues/issue-73112.rs new file mode 100644 index 00000000000..cc7be9c95ae --- /dev/null +++ b/src/test/ui/issues/issue-73112.rs @@ -0,0 +1,13 @@ +// aux-build:issue-73112.rs + +extern crate issue_73112; + +fn main() { + use issue_73112::PageTable; + + #[repr(C, packed)] + struct SomeStruct { + //~^ ERROR packed type cannot transitively contain a `#[repr(align)]` type [E0588] + page_table: PageTable, + } +} diff --git a/src/test/ui/issues/issue-73112.stderr b/src/test/ui/issues/issue-73112.stderr new file mode 100644 index 00000000000..5a548378c26 --- /dev/null +++ b/src/test/ui/issues/issue-73112.stderr @@ -0,0 +1,20 @@ +error[E0588]: packed type cannot transitively contain a `#[repr(align)]` type + --> $DIR/issue-73112.rs:9:5 + | +LL | / struct SomeStruct { +LL | | +LL | | page_table: PageTable, +LL | | } + | |_____^ + | +note: `PageTable` has a `#[repr(align)]` attribute + --> $DIR/auxiliary/issue-73112.rs:8:1 + | +LL | / pub struct PageTable { +LL | | entries: [PageTableEntry; 512], +LL | | } + | |_^ + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0588`. |
