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>(
1050
1050
. span_err ( span, format ! ( "{err_attr_name} must have 2, 3 or 4 members" ) )
1051
1051
} ) ?;
1052
1052
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
+
1053
1074
Ok ( ( element_word, count) )
1054
1075
} else {
1055
1076
Err ( tcx
You can’t perform that action at this time.
0 commit comments