Skip to content

Commit 6bd6afa

Browse files
authored
Upgrade toolchain to 06/30 (#4188)
Culprit PRs: - rust-lang/rust#142927 - rust-lang/rust#141759 By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 and MIT licenses.
1 parent b705ac5 commit 6bd6afa

File tree

4 files changed

+40
-39
lines changed

4 files changed

+40
-39
lines changed

kani-compiler/src/codegen_aeneas_llbc/mir_to_ullbc/mod.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -418,7 +418,7 @@ impl<'a, 'tcx> Context<'a, 'tcx> {
418418
name: rustc_span::Symbol::intern(&name.clone()),
419419
};
420420
let paramenv = TypingEnv::post_analysis(self.tcx, def_id_internal).param_env;
421-
let ty_internal = pc_internal.find_ty_from_env(paramenv);
421+
let ty_internal = pc_internal.find_const_ty_from_env(paramenv);
422422
let ty_stable = rustc_internal::stable(ty_internal);
423423
let trans_ty = self.translate_ty(ty_stable);
424424
let lit_ty = match trans_ty.kind() {
@@ -486,7 +486,7 @@ impl<'a, 'tcx> Context<'a, 'tcx> {
486486
index: paramtc.index,
487487
name: rustc_span::Symbol::intern(&paramtc.name),
488488
};
489-
let ty_internal = pc_internal.find_ty_from_env(paramenv);
489+
let ty_internal = pc_internal.find_const_ty_from_env(paramenv);
490490
let ty_stable = rustc_internal::stable(ty_internal);
491491
let trans_ty = self.translate_ty(ty_stable);
492492
let lit_ty = match trans_ty.kind() {
@@ -568,7 +568,7 @@ impl<'a, 'tcx> Context<'a, 'tcx> {
568568
index: paramtc.index,
569569
name: rustc_span::Symbol::intern(&paramtc.name),
570570
};
571-
let ty_internal = pc_internal.find_ty_from_env(paramenv);
571+
let ty_internal = pc_internal.find_const_ty_from_env(paramenv);
572572
let ty_stable = rustc_internal::stable(ty_internal);
573573
let trans_ty = self.translate_ty(ty_stable);
574574
let lit_ty = match trans_ty.kind() {

kani-compiler/src/codegen_cprover_gotoc/codegen/statement.rs

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -317,25 +317,23 @@ impl GotocCtx<'_> {
317317
if *expected { r } else { Expr::not(r) }
318318
};
319319

320+
// Generate the message to print to the user and property class.
321+
// For `msg`s with runtime values, replace them with static messages,
322+
// since that's all that CBMC accepts.
320323
let (msg, property_class) = match msg {
321-
AssertMessage::BoundsCheck { .. } => {
322-
// For bounds check the following panic message is generated at runtime:
323-
// "index out of bounds: the length is {len} but the index is {index}",
324-
// but CBMC only accepts static messages so we don't add values to the message.
325-
(
326-
"index out of bounds: the length is less than or equal to the given index",
327-
PropertyClass::Assertion,
328-
)
329-
}
330-
AssertMessage::MisalignedPointerDereference { .. } => {
331-
// Misaligned pointer dereference check messages is also a runtime messages.
332-
// Generate a generic one here.
333-
(
334-
"misaligned pointer dereference: address must be a multiple of its type's \
324+
AssertMessage::BoundsCheck { .. } => (
325+
"index out of bounds: the length is less than or equal to the given index",
326+
PropertyClass::Assertion,
327+
),
328+
AssertMessage::InvalidEnumConstruction { .. } => (
329+
"invalid enum construction: value is not a valid discriminant for this enum",
330+
PropertyClass::SafetyCheck,
331+
),
332+
AssertMessage::MisalignedPointerDereference { .. } => (
333+
"misaligned pointer dereference: address must be a multiple of its type's \
335334
alignment",
336-
PropertyClass::SafetyCheck,
337-
)
338-
}
335+
PropertyClass::SafetyCheck,
336+
),
339337
// For all other assert kind we can get the static message.
340338
AssertMessage::NullPointerDereference => {
341339
(msg.description().unwrap(), PropertyClass::SafetyCheck)

kani-compiler/src/kani_middle/transform/internal_mir.rs

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -514,6 +514,21 @@ impl RustcInternalMir for AssertMessage {
514514
index: index.internal_mir(tcx),
515515
}
516516
}
517+
AssertMessage::DivisionByZero(operand) => {
518+
rustc_middle::mir::AssertMessage::DivisionByZero(operand.internal_mir(tcx))
519+
}
520+
AssertMessage::InvalidEnumConstruction(source) => {
521+
rustc_middle::mir::AssertMessage::InvalidEnumConstruction(source.internal_mir(tcx))
522+
}
523+
AssertMessage::MisalignedPointerDereference { required, found } => {
524+
rustc_middle::mir::AssertMessage::MisalignedPointerDereference {
525+
required: required.internal_mir(tcx),
526+
found: found.internal_mir(tcx),
527+
}
528+
}
529+
AssertMessage::NullPointerDereference => {
530+
rustc_middle::mir::AssertMessage::NullPointerDereference
531+
}
517532
AssertMessage::Overflow(bin_op, left_operand, right_operand) => {
518533
rustc_middle::mir::AssertMessage::Overflow(
519534
internal(tcx, bin_op),
@@ -524,33 +539,21 @@ impl RustcInternalMir for AssertMessage {
524539
AssertMessage::OverflowNeg(operand) => {
525540
rustc_middle::mir::AssertMessage::OverflowNeg(operand.internal_mir(tcx))
526541
}
527-
AssertMessage::DivisionByZero(operand) => {
528-
rustc_middle::mir::AssertMessage::DivisionByZero(operand.internal_mir(tcx))
529-
}
530542
AssertMessage::RemainderByZero(operand) => {
531543
rustc_middle::mir::AssertMessage::RemainderByZero(operand.internal_mir(tcx))
532544
}
533-
AssertMessage::ResumedAfterReturn(coroutine_kind) => {
534-
rustc_middle::mir::AssertMessage::ResumedAfterReturn(
535-
coroutine_kind.internal_mir(tcx),
536-
)
545+
AssertMessage::ResumedAfterDrop(coroutine_kind) => {
546+
rustc_middle::mir::AssertMessage::ResumedAfterDrop(coroutine_kind.internal_mir(tcx))
537547
}
538548
AssertMessage::ResumedAfterPanic(coroutine_kind) => {
539549
rustc_middle::mir::AssertMessage::ResumedAfterPanic(
540550
coroutine_kind.internal_mir(tcx),
541551
)
542552
}
543-
AssertMessage::MisalignedPointerDereference { required, found } => {
544-
rustc_middle::mir::AssertMessage::MisalignedPointerDereference {
545-
required: required.internal_mir(tcx),
546-
found: found.internal_mir(tcx),
547-
}
548-
}
549-
AssertMessage::NullPointerDereference => {
550-
rustc_middle::mir::AssertMessage::NullPointerDereference
551-
}
552-
AssertMessage::ResumedAfterDrop(coroutine_kind) => {
553-
rustc_middle::mir::AssertMessage::ResumedAfterDrop(coroutine_kind.internal_mir(tcx))
553+
AssertMessage::ResumedAfterReturn(coroutine_kind) => {
554+
rustc_middle::mir::AssertMessage::ResumedAfterReturn(
555+
coroutine_kind.internal_mir(tcx),
556+
)
554557
}
555558
}
556559
}

rust-toolchain.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22
# SPDX-License-Identifier: Apache-2.0 OR MIT
33

44
[toolchain]
5-
channel = "nightly-2025-06-27"
5+
channel = "nightly-2025-06-30"
66
components = ["llvm-tools", "rustc-dev", "rust-src", "rustfmt"]

0 commit comments

Comments
 (0)