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