Change:
<!-- Thank you for finding an Internal Compiler Error! If possible, try to provide a minimal verifiable example. You can read "Rust Bug Minimization Patterns" for how to create smaller examples. --<!-- If you're using the stable version of the compiler, you should also check if the bug also exists in the beta or nightly versions. --: <!-- Include a backtrace in the code block by setting in your environment. E.g. . --<details<summary<strongBacktrace</strong</summary<p</p</details
build-pass -ice in nightly-2020-07-31 commit[0] 2020-07-29: Auto merge of - richkadel:llvm-coverage-map-gen-5, r=tmandry commit[1] 2020-07-29: Auto merge of - P1n3appl3:rustdoc-formats, r=tmandry commit[2] 2020-07-30: Auto merge of - Manishearth:rollup-z2vflrp, r=Manishearth commit[3] 2020-07-30: Auto merge of - ehuss:update-cargo, r=Mark-Simulacrum commit[4] 2020-07-30: Auto merge of - oli-obk:lumberjack_disable, r=RalfJung commit[5] 2020-07-30: Auto merge of - npmccallum:naked, r=matthewjasper commit[6] 2020-07-30: Auto merge of - ecstatic-morse:const-size-align-of-val, r=oli-obk commit[7] 2020-07-30: Auto merge of - jumbatm:clashing-extern-decl, r=nagisa commit[8] 2020-07-30: Auto merge of - RalfJung:miri, r=RalfJung commit[9] 2020-07-30: Auto merge of - Manishearth:rollup-3wudwlg, r=Manishearth ERROR: no CI builds available between and
probably ?
why did you mark this as P-critical if it's a stable-to-stable regression from 2020?
Minimal:
its a regression build pass -ice which is critical according to the rustc dev guide
According to (not the dev guide, which I was confused since the dev guide doesn't really mention criteria for priority): This is a regression since like 1.47, so I don't think it necessarily needs to block a release to fix :smiley_cat:
Ah sorry that's what i meant, right guess its p high then.
WG-prioritization assigning priority (). label -I-prioritize +P-medium

Discussion:
} // Return the nullable type this Option-like enum can be safely represented with. <del> let field_ty_abi = &tcx.layout_of(param_env.and(field_ty)).unwrap().abi; </del> <ins> let field_ty_layout = tcx.layout_of(param_env.and(field_ty)); if field_ty_layout.is_err() && !field_ty.has_non_region_param() { bug!("should be able to compute the layout of non-polymorphic type"); } let field_ty_abi = &field_ty_layout.ok()?.abi; </ins> if let Abi::Scalar(field_ty_scalar) = field_ty_abi { match field_ty_scalar.valid_range(&tcx) { WrappingRange { start: 0, end }

<ins> #![deny(improper_ctypes_definitions)] extern "C" fn foo<T: ?Sized + 'static>() -> Option<&'static T> { //~^ ERROR `extern` fn uses type `Option<&T>`, which is not FFI-safe None } fn main() {} </ins>

<ins> error: `extern` fn uses type `Option<&T>`, which is not FFI-safe --> $DIR/lint-ctypes-option-nonnull-unsized.rs:3:45 | LL | extern "C" fn foo<T: ?Sized + 'static>() -> Option<&'static T> { |                                             ^^^^^^^^^^^^^^^^^^ not FFI-safe | = help: consider adding a `#[repr(C)]`, `#[repr(transparent)]`, or integer `#[repr(...)]` attribute to this enum = note: enum has no representation hint note: the lint level is defined here --> $DIR/lint-ctypes-option-nonnull-unsized.rs:1:9 | LL | #![deny(improper_ctypes_definitions)] |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: aborting due to previous error </ins>