about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRalf Jung <post@ralfj.de>2022-07-28 16:59:55 -0400
committerRalf Jung <post@ralfj.de>2022-07-31 06:29:57 -0400
commit98e52c2a273c923a4e43eeee6a0c3d1a6d91dbce (patch)
treedc5bbae7fc77ca9ce863facf7b45c4a169352cab
parenta2318651d4d2c6280a5047544cbf4180119ba966 (diff)
downloadrust-98e52c2a273c923a4e43eeee6a0c3d1a6d91dbce.tar.gz
rust-98e52c2a273c923a4e43eeee6a0c3d1a6d91dbce.zip
check 'size multiple of align' for all layouts
-rw-r--r--compiler/rustc_middle/src/ty/layout.rs4
1 files changed, 4 insertions, 0 deletions
diff --git a/compiler/rustc_middle/src/ty/layout.rs b/compiler/rustc_middle/src/ty/layout.rs
index 833edd22805..ad78d24e954 100644
--- a/compiler/rustc_middle/src/ty/layout.rs
+++ b/compiler/rustc_middle/src/ty/layout.rs
@@ -232,6 +232,10 @@ fn sanity_check_layout<'tcx>(
         assert!(layout.abi.is_uninhabited());
     }
 
+    if layout.size.bytes() % layout.align.abi.bytes() != 0 {
+        bug!("size is not a multiple of align, in the following layout:\n{layout:#?}");
+    }
+
     if cfg!(debug_assertions) {
         fn check_layout_abi<'tcx>(tcx: TyCtxt<'tcx>, layout: Layout<'tcx>) {
             match layout.abi() {