File tree Expand file tree Collapse file tree 1 file changed +21
-0
lines changed
crates/rustc_codegen_spirv/src Expand file tree Collapse file tree 1 file changed +21
-0
lines changed Original file line number Diff line number Diff line change @@ -1059,6 +1059,27 @@ fn trans_glam_like_struct<'tcx>(
10591059 . span_err ( span, format ! ( "{err_attr_name} must have 2, 3 or 4 members" ) )
10601060 } ) ?;
10611061
1062+ for i in 0 ..ty. fields . count ( ) {
1063+ let expected = element. size . checked_mul ( i as u64 , cx) . unwrap ( ) ;
1064+ let actual = ty. fields . offset ( i) ;
1065+ if actual != expected {
1066+ let name: & str = adt
1067+ . non_enum_variant ( )
1068+ . fields
1069+ . get ( FieldIdx :: from ( i) )
1070+ . unwrap ( )
1071+ . name
1072+ . as_str ( ) ;
1073+ tcx. dcx ( ) . span_fatal (
1074+ span,
1075+ format ! (
1076+ "Unexpected layout for {err_attr_name} annotated struct: \
1077+ Expected member `{name}` at offset {expected:?}, but was at {actual:?}"
1078+ ) ,
1079+ )
1080+ }
1081+ }
1082+
10621083 Ok ( ( element_word, count) )
10631084 } else {
10641085 Err ( tcx
You can’t perform that action at this time.
0 commit comments