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 @@ -1050,6 +1050,27 @@ fn trans_glam_like_struct<'tcx>(
10501050 . span_err ( span, format ! ( "{err_attr_name} must have 2, 3 or 4 members" ) )
10511051 } ) ?;
10521052
1053+ for i in 0 ..ty. fields . count ( ) {
1054+ let expected = element. size . checked_mul ( i as u64 , cx) . unwrap ( ) ;
1055+ let actual = ty. fields . offset ( i) ;
1056+ if actual != expected {
1057+ let name: & str = adt
1058+ . non_enum_variant ( )
1059+ . fields
1060+ . get ( FieldIdx :: from ( i) )
1061+ . unwrap ( )
1062+ . name
1063+ . as_str ( ) ;
1064+ tcx. dcx ( ) . span_fatal (
1065+ span,
1066+ format ! (
1067+ "Unexpected layout for {err_attr_name} annotated struct: \
1068+ Expected member `{name}` at offset {expected:?}, but was at {actual:?}"
1069+ ) ,
1070+ )
1071+ }
1072+ }
1073+
10531074 Ok ( ( element_word, count) )
10541075 } else {
10551076 Err ( tcx
You can’t perform that action at this time.
0 commit comments