Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-ty/src/layout/tests.rs')
-rw-r--r--crates/hir-ty/src/layout/tests.rs30
1 files changed, 30 insertions, 0 deletions
diff --git a/crates/hir-ty/src/layout/tests.rs b/crates/hir-ty/src/layout/tests.rs
index 9937113685..ef0be7ab2d 100644
--- a/crates/hir-ty/src/layout/tests.rs
+++ b/crates/hir-ty/src/layout/tests.rs
@@ -221,6 +221,36 @@ fn recursive() {
}
#[test]
+fn repr_packed() {
+ size_and_align! {
+ #[repr(packed)]
+ struct Goal;
+ }
+ size_and_align! {
+ #[repr(packed(2))]
+ struct Goal;
+ }
+ size_and_align! {
+ #[repr(packed(4))]
+ struct Goal;
+ }
+ size_and_align! {
+ #[repr(packed)]
+ struct Goal(i32);
+ }
+ size_and_align! {
+ #[repr(packed(2))]
+ struct Goal(i32);
+ }
+ size_and_align! {
+ #[repr(packed(4))]
+ struct Goal(i32);
+ }
+
+ check_size_and_align("#[repr(packed(5))] struct Goal(i32);", "", 4, 1);
+}
+
+#[test]
fn generic() {
size_and_align! {
struct Pair<A, B>(A, B);