about summary refs log tree commit diff
path: root/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2023-06-23 19:39:58 +0200
committerGitHub <noreply@github.com>2023-06-23 19:39:58 +0200
commitcea5ae00d2eebaa91124396b074317a13d8bc9a3 (patch)
tree724e8a8d96cdc7e0d1d30cd1360f8bd5177775f4 /compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp
parentafe337d2f1f87a307f502e263758e753c326ac1d (diff)
parent32f83e18ab1891482873eea6e4337d610393c0a5 (diff)
downloadrust-cea5ae00d2eebaa91124396b074317a13d8bc9a3.tar.gz
rust-cea5ae00d2eebaa91124396b074317a13d8bc9a3.zip
Rollup merge of #112810 - compiler-errors:dont-ice-on-bad-layout, r=wesleywiser
Don't ICE on unnormalized struct tail in layout computation

1. We try to compute a `SizeSkeleton` even if a layout error occurs, but we really only need to do this if we get `LayoutError::Unknown`, since that means our type is too polymorphic to actually compute the full layout. If we have other errors, like `LayoutError::NormalizationError` or `LayoutError::Cycle`, then we can't really make any progress, since this represents an actual error.
2. Avoid using `normalize_erasing_regions` and `struct_tail_erasing_lifetimes` since those ICE on normalization errors, and since we may call `layout_of` in HIR typeck, we don't know for certain that we're on the happy path.

Fixes #112736
Diffstat (limited to 'compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp')
0 files changed, 0 insertions, 0 deletions