Skip to content

Commit 53173cf

Browse files
authored
Update toolchain to 2025-06-13 (#4152)
Culprit PRs: - June 4: rust-lang/rust#141741 - June 5: rust-lang/rust#142015 - June 6: rust-lang/rust#138677, rust-lang/rust#142005 - June 7: rust-lang/rust#142012 - June 9: rust-lang/rust#141700 - June 10: rust-lang/rust#142179, rust-lang/rust#141803 Resolves #4140 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 2ad7573 commit 53173cf

File tree

33 files changed

+430
-436
lines changed

33 files changed

+430
-436
lines changed

cprover_bindings/src/irep/irep_id.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -887,7 +887,7 @@ impl ToString for IrepId {
887887
}
888888

889889
impl IrepId {
890-
pub fn to_string_cow(&self) -> Cow<str> {
890+
pub fn to_string_cow(&self) -> Cow<'_, str> {
891891
match self.to_owned_string() {
892892
Some(owned) => Cow::Owned(owned),
893893
None => Cow::Borrowed(self.to_static_string()),

docs/src/rust-feature-support/intrinsics.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,6 @@ powf32 | Partial | Results are overapproximated |
187187
powf64 | Partial | Results are overapproximated |
188188
powif32 | Partial | Results are overapproximated |
189189
powif64 | Partial | Results are overapproximated |
190-
pref_align_of | Yes | |
191190
prefetch_read_data | No | |
192191
prefetch_read_instruction | No | |
193192
prefetch_write_data | No | |

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

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -302,27 +302,25 @@ impl GotocCtx<'_> {
302302
"Rust intrinsic assumption failed",
303303
loc,
304304
),
305-
Intrinsic::AtomicAnd(_) => codegen_atomic_binop!(bitand),
306-
Intrinsic::AtomicCxchg(_) | Intrinsic::AtomicCxchgWeak(_) => {
305+
Intrinsic::AtomicAnd => codegen_atomic_binop!(bitand),
306+
Intrinsic::AtomicCxchg | Intrinsic::AtomicCxchgWeak => {
307307
self.codegen_atomic_cxchg(intrinsic_str, fargs, place, loc)
308308
}
309309

310-
Intrinsic::AtomicFence(_) => self.codegen_atomic_noop(intrinsic_str, loc),
310+
Intrinsic::AtomicFence => self.codegen_atomic_noop(intrinsic_str, loc),
311311
Intrinsic::AtomicLoad => self.codegen_atomic_load(intrinsic_str, fargs, place, loc),
312-
Intrinsic::AtomicMax(_) => codegen_atomic_binop!(max),
313-
Intrinsic::AtomicMin(_) => codegen_atomic_binop!(min),
314-
Intrinsic::AtomicNand(_) => codegen_atomic_binop!(bitnand),
315-
Intrinsic::AtomicOr(_) => codegen_atomic_binop!(bitor),
316-
Intrinsic::AtomicSingleThreadFence(_) => self.codegen_atomic_noop(intrinsic_str, loc),
317-
Intrinsic::AtomicStore(_) => {
318-
self.codegen_atomic_store(intrinsic_str, fargs, place, loc)
319-
}
320-
Intrinsic::AtomicUmax(_) => codegen_atomic_binop!(max),
321-
Intrinsic::AtomicUmin(_) => codegen_atomic_binop!(min),
322-
Intrinsic::AtomicXadd(_) => codegen_atomic_binop!(plus),
323-
Intrinsic::AtomicXchg(_) => self.codegen_atomic_store(intrinsic_str, fargs, place, loc),
324-
Intrinsic::AtomicXor(_) => codegen_atomic_binop!(bitxor),
325-
Intrinsic::AtomicXsub(_) => codegen_atomic_binop!(sub),
312+
Intrinsic::AtomicMax => codegen_atomic_binop!(max),
313+
Intrinsic::AtomicMin => codegen_atomic_binop!(min),
314+
Intrinsic::AtomicNand => codegen_atomic_binop!(bitnand),
315+
Intrinsic::AtomicOr => codegen_atomic_binop!(bitor),
316+
Intrinsic::AtomicSingleThreadFence => self.codegen_atomic_noop(intrinsic_str, loc),
317+
Intrinsic::AtomicStore => self.codegen_atomic_store(intrinsic_str, fargs, place, loc),
318+
Intrinsic::AtomicUmax => codegen_atomic_binop!(max),
319+
Intrinsic::AtomicUmin => codegen_atomic_binop!(min),
320+
Intrinsic::AtomicXadd => codegen_atomic_binop!(plus),
321+
Intrinsic::AtomicXchg => self.codegen_atomic_store(intrinsic_str, fargs, place, loc),
322+
Intrinsic::AtomicXor => codegen_atomic_binop!(bitxor),
323+
Intrinsic::AtomicXsub => codegen_atomic_binop!(sub),
326324
Intrinsic::Bitreverse => {
327325
self.codegen_expr_to_place_stable(place, fargs.remove(0).bitreverse(), loc)
328326
}
@@ -419,7 +417,6 @@ impl GotocCtx<'_> {
419417
Intrinsic::PowF64 => codegen_simple_intrinsic!(Pow),
420418
Intrinsic::PowIF32 => codegen_simple_intrinsic!(Powif),
421419
Intrinsic::PowIF64 => codegen_simple_intrinsic!(Powi),
422-
Intrinsic::PrefAlignOf => codegen_intrinsic_const!(),
423420
Intrinsic::PtrGuaranteedCmp => self.codegen_ptr_guaranteed_cmp(fargs, place, loc),
424421
Intrinsic::RawEq => self.codegen_intrinsic_raw_eq(instance, fargs, place, loc),
425422
Intrinsic::RetagBoxToRaw => self.codegen_retag_box_to_raw(fargs, place, loc),

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -519,7 +519,7 @@ impl GotocCtx<'_> {
519519
.index_by_increasing_offset()
520520
.map(|idx| {
521521
let field_ty = layout.field(self, idx).ty;
522-
if idx == *discriminant_field {
522+
if idx == (*discriminant_field).as_usize() {
523523
Expr::int_constant(0, self.codegen_ty(field_ty))
524524
} else {
525525
self.codegen_operand_stable(&operands[idx])

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -924,7 +924,7 @@ impl<'tcx> GotocCtx<'tcx> {
924924
pretty_name,
925925
type_and_layout,
926926
"DirectFields".into(),
927-
Some(*discriminant_field),
927+
Some((*discriminant_field).as_usize()),
928928
),
929929
};
930930
let mut fields = vec![direct_fields];
@@ -1308,7 +1308,7 @@ impl<'tcx> GotocCtx<'tcx> {
13081308
// Contrary to coroutines, currently enums have only one field (the discriminant), the rest are in the variants:
13091309
assert!(layout.fields.count() <= 1);
13101310
// Contrary to coroutines, the discriminant is the first (and only) field for enums:
1311-
assert_eq!(*tag_field, 0);
1311+
assert_eq!((*tag_field).as_usize(), 0);
13121312
match tag_encoding {
13131313
TagEncoding::Direct => {
13141314
self.ensure_struct(self.ty_mangled_name(ty), pretty_name, |gcx, name| {

kani-compiler/src/codegen_cprover_gotoc/compiler_interface.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ use cbmc::{InternedString, MachineModel};
2020
use kani_metadata::artifact::convert_type;
2121
use kani_metadata::{ArtifactType, HarnessMetadata, KaniMetadata, UnsupportedFeature};
2222
use kani_metadata::{AssignsContract, CompilerArtifactStub};
23-
use rustc_abi::Endian;
23+
use rustc_abi::{Align, Endian};
2424
use rustc_codegen_ssa::back::archive::{
2525
ArArchiveBuilder, ArchiveBuilder, ArchiveBuilderBuilder, DEFAULT_OBJECT_READER,
2626
};
@@ -511,10 +511,11 @@ fn check_options(session: &Session) {
511511
// a valid CBMC machine model in function `machine_model_from_session` from
512512
// src/kani-compiler/src/codegen_cprover_gotoc/context/goto_ctx.rs
513513
match session.target.options.min_global_align {
514-
Some(1) => (),
514+
Some(Align::ONE) => (),
515515
Some(align) => {
516516
let err_msg = format!(
517-
"Kani requires the target architecture option `min_global_align` to be 1, but it is {align}."
517+
"Kani requires the target architecture option `min_global_align` to be 1, but it is {}.",
518+
align.bytes()
518519
);
519520
session.dcx().err(err_msg);
520521
}
@@ -705,7 +706,7 @@ fn new_machine_model(sess: &Session) -> MachineModel {
705706
// We check these options in function `check_options` from
706707
// src/kani-compiler/src/codegen_cprover_gotoc/compiler_interface.rs
707708
// and error if their values are not the ones we expect.
708-
let alignment = sess.target.options.min_global_align.unwrap_or(1);
709+
let alignment = sess.target.options.min_global_align.map_or(1, |align| align.bytes());
709710
let is_big_endian = match sess.target.options.endian {
710711
Endian::Little => false,
711712
Endian::Big => true,

kani-compiler/src/intrinsics.rs

Lines changed: 86 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -19,23 +19,23 @@ pub enum Intrinsic {
1919
AssertMemUninitializedValid,
2020
AssertZeroValid,
2121
Assume,
22-
AtomicAnd(String),
23-
AtomicCxchg(String),
24-
AtomicCxchgWeak(String),
25-
AtomicFence(String),
22+
AtomicAnd,
23+
AtomicCxchg,
24+
AtomicCxchgWeak,
25+
AtomicFence,
2626
AtomicLoad,
27-
AtomicMax(String),
28-
AtomicMin(String),
29-
AtomicNand(String),
30-
AtomicOr(String),
31-
AtomicSingleThreadFence(String),
32-
AtomicStore(String),
33-
AtomicUmax(String),
34-
AtomicUmin(String),
35-
AtomicXadd(String),
36-
AtomicXchg(String),
37-
AtomicXor(String),
38-
AtomicXsub(String),
27+
AtomicMax,
28+
AtomicMin,
29+
AtomicNand,
30+
AtomicOr,
31+
AtomicSingleThreadFence,
32+
AtomicStore,
33+
AtomicUmax,
34+
AtomicUmin,
35+
AtomicXadd,
36+
AtomicXchg,
37+
AtomicXor,
38+
AtomicXsub,
3939
Bitreverse,
4040
BlackBox,
4141
Breakpoint,
@@ -91,7 +91,6 @@ pub enum Intrinsic {
9191
PowF64,
9292
PowIF32,
9393
PowIF64,
94-
PrefAlignOf,
9594
PtrGuaranteedCmp,
9695
PtrOffsetFrom,
9796
PtrOffsetFromUnsigned,
@@ -330,10 +329,6 @@ impl Intrinsic {
330329
"offset" => unreachable!(
331330
"Expected `core::intrinsics::unreachable` to be handled by `BinOp::OffSet`"
332331
),
333-
"pref_align_of" => {
334-
assert_sig_matches!(sig, => RigidTy::Uint(UintTy::Usize));
335-
Self::PrefAlignOf
336-
}
337332
"ptr_guaranteed_cmp" => {
338333
assert_sig_matches!(sig, RigidTy::RawPtr(_, Mutability::Not), RigidTy::RawPtr(_, Mutability::Not) => RigidTy::Uint(UintTy::U8));
339334
Self::PtrGuaranteedCmp
@@ -471,59 +466,76 @@ impl Intrinsic {
471466
fn try_match_atomic(intrinsic_instance: &Instance) -> Option<Intrinsic> {
472467
let intrinsic_str = intrinsic_instance.intrinsic_name().unwrap();
473468
let sig = intrinsic_instance.ty().kind().fn_sig().unwrap().skip_binder();
474-
if let Some(suffix) = intrinsic_str.strip_prefix("atomic_and_") {
475-
assert_sig_matches!(sig, RigidTy::RawPtr(_, Mutability::Mut), _ => _);
476-
Some(Intrinsic::AtomicAnd(suffix.into()))
477-
} else if let Some(suffix) = intrinsic_str.strip_prefix("atomic_cxchgweak_") {
478-
assert_sig_matches!(sig, RigidTy::RawPtr(_, Mutability::Mut), _, _ => RigidTy::Tuple(_));
479-
Some(Intrinsic::AtomicCxchgWeak(suffix.into()))
480-
} else if let Some(suffix) = intrinsic_str.strip_prefix("atomic_cxchg_") {
481-
assert_sig_matches!(sig, RigidTy::RawPtr(_, Mutability::Mut), _, _ => RigidTy::Tuple(_));
482-
Some(Intrinsic::AtomicCxchg(suffix.into()))
483-
} else if let Some(suffix) = intrinsic_str.strip_prefix("atomic_fence_") {
484-
assert_sig_matches!(sig, => RigidTy::Tuple(_));
485-
Some(Intrinsic::AtomicFence(suffix.into()))
486-
} else if intrinsic_str == "atomic_load" {
487-
assert_sig_matches!(sig, RigidTy::RawPtr(_, Mutability::Not) => _);
488-
Some(Intrinsic::AtomicLoad)
489-
} else if let Some(suffix) = intrinsic_str.strip_prefix("atomic_max_") {
490-
assert_sig_matches!(sig, RigidTy::RawPtr(_, Mutability::Mut), _ => _);
491-
Some(Intrinsic::AtomicMax(suffix.into()))
492-
} else if let Some(suffix) = intrinsic_str.strip_prefix("atomic_min_") {
493-
assert_sig_matches!(sig, RigidTy::RawPtr(_, Mutability::Mut), _ => _);
494-
Some(Intrinsic::AtomicMin(suffix.into()))
495-
} else if let Some(suffix) = intrinsic_str.strip_prefix("atomic_nand_") {
496-
assert_sig_matches!(sig, RigidTy::RawPtr(_, Mutability::Mut), _ => _);
497-
Some(Intrinsic::AtomicNand(suffix.into()))
498-
} else if let Some(suffix) = intrinsic_str.strip_prefix("atomic_or_") {
499-
assert_sig_matches!(sig, RigidTy::RawPtr(_, Mutability::Mut), _ => _);
500-
Some(Intrinsic::AtomicOr(suffix.into()))
501-
} else if let Some(suffix) = intrinsic_str.strip_prefix("atomic_singlethreadfence_") {
502-
assert_sig_matches!(sig, => RigidTy::Tuple(_));
503-
Some(Intrinsic::AtomicSingleThreadFence(suffix.into()))
504-
} else if let Some(suffix) = intrinsic_str.strip_prefix("atomic_store_") {
505-
assert_sig_matches!(sig, RigidTy::RawPtr(_, Mutability::Mut), _ => RigidTy::Tuple(_));
506-
Some(Intrinsic::AtomicStore(suffix.into()))
507-
} else if let Some(suffix) = intrinsic_str.strip_prefix("atomic_umax_") {
508-
assert_sig_matches!(sig, RigidTy::RawPtr(_, Mutability::Mut), _ => _);
509-
Some(Intrinsic::AtomicUmax(suffix.into()))
510-
} else if let Some(suffix) = intrinsic_str.strip_prefix("atomic_umin_") {
511-
assert_sig_matches!(sig, RigidTy::RawPtr(_, Mutability::Mut), _ => _);
512-
Some(Intrinsic::AtomicUmin(suffix.into()))
513-
} else if let Some(suffix) = intrinsic_str.strip_prefix("atomic_xadd_") {
514-
assert_sig_matches!(sig, RigidTy::RawPtr(_, Mutability::Mut), _ => _);
515-
Some(Intrinsic::AtomicXadd(suffix.into()))
516-
} else if let Some(suffix) = intrinsic_str.strip_prefix("atomic_xchg_") {
517-
assert_sig_matches!(sig, RigidTy::RawPtr(_, Mutability::Mut), _ => _);
518-
Some(Intrinsic::AtomicXchg(suffix.into()))
519-
} else if let Some(suffix) = intrinsic_str.strip_prefix("atomic_xor_") {
520-
assert_sig_matches!(sig, RigidTy::RawPtr(_, Mutability::Mut), _ => _);
521-
Some(Intrinsic::AtomicXor(suffix.into()))
522-
} else if let Some(suffix) = intrinsic_str.strip_prefix("atomic_xsub_") {
523-
assert_sig_matches!(sig, RigidTy::RawPtr(_, Mutability::Mut), _ => _);
524-
Some(Intrinsic::AtomicXsub(suffix.into()))
525-
} else {
526-
None
469+
match intrinsic_str.as_str() {
470+
"atomic_and" => {
471+
assert_sig_matches!(sig, RigidTy::RawPtr(_, Mutability::Mut), _ => _);
472+
Some(Intrinsic::AtomicAnd)
473+
}
474+
"atomic_cxchgweak" => {
475+
assert_sig_matches!(sig, RigidTy::RawPtr(_, Mutability::Mut), _, _ => RigidTy::Tuple(_));
476+
Some(Intrinsic::AtomicCxchgWeak)
477+
}
478+
"atomic_cxchg" => {
479+
assert_sig_matches!(sig, RigidTy::RawPtr(_, Mutability::Mut), _, _ => RigidTy::Tuple(_));
480+
Some(Intrinsic::AtomicCxchg)
481+
}
482+
"atomic_fence" => {
483+
assert_sig_matches!(sig, => RigidTy::Tuple(_));
484+
Some(Intrinsic::AtomicFence)
485+
}
486+
"atomic_load" => {
487+
assert_sig_matches!(sig, RigidTy::RawPtr(_, Mutability::Not) => _);
488+
Some(Intrinsic::AtomicLoad)
489+
}
490+
"atomic_max" => {
491+
assert_sig_matches!(sig, RigidTy::RawPtr(_, Mutability::Mut), _ => _);
492+
Some(Intrinsic::AtomicMax)
493+
}
494+
"atomic_min" => {
495+
assert_sig_matches!(sig, RigidTy::RawPtr(_, Mutability::Mut), _ => _);
496+
Some(Intrinsic::AtomicMin)
497+
}
498+
"atomic_nand" => {
499+
assert_sig_matches!(sig, RigidTy::RawPtr(_, Mutability::Mut), _ => _);
500+
Some(Intrinsic::AtomicNand)
501+
}
502+
"atomic_or" => {
503+
assert_sig_matches!(sig, RigidTy::RawPtr(_, Mutability::Mut), _ => _);
504+
Some(Intrinsic::AtomicOr)
505+
}
506+
"atomic_singlethreadfence" => {
507+
assert_sig_matches!(sig, => RigidTy::Tuple(_));
508+
Some(Intrinsic::AtomicSingleThreadFence)
509+
}
510+
"atomic_store" => {
511+
assert_sig_matches!(sig, RigidTy::RawPtr(_, Mutability::Mut), _ => RigidTy::Tuple(_));
512+
Some(Intrinsic::AtomicStore)
513+
}
514+
"atomic_umax" => {
515+
assert_sig_matches!(sig, RigidTy::RawPtr(_, Mutability::Mut), _ => _);
516+
Some(Intrinsic::AtomicUmax)
517+
}
518+
"atomic_umin" => {
519+
assert_sig_matches!(sig, RigidTy::RawPtr(_, Mutability::Mut), _ => _);
520+
Some(Intrinsic::AtomicUmin)
521+
}
522+
"atomic_xadd" => {
523+
assert_sig_matches!(sig, RigidTy::RawPtr(_, Mutability::Mut), _ => _);
524+
Some(Intrinsic::AtomicXadd)
525+
}
526+
"atomic_xchg" => {
527+
assert_sig_matches!(sig, RigidTy::RawPtr(_, Mutability::Mut), _ => _);
528+
Some(Intrinsic::AtomicXchg)
529+
}
530+
"atomic_xor" => {
531+
assert_sig_matches!(sig, RigidTy::RawPtr(_, Mutability::Mut), _ => _);
532+
Some(Intrinsic::AtomicXor)
533+
}
534+
"atomic_xsub" => {
535+
assert_sig_matches!(sig, RigidTy::RawPtr(_, Mutability::Mut), _ => _);
536+
Some(Intrinsic::AtomicXsub)
537+
}
538+
_ => None,
527539
}
528540
}
529541

kani-compiler/src/kani_middle/coercion.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ use rustc_middle::ty::TraitRef;
1919
use rustc_middle::ty::adjustment::CustomCoerceUnsized;
2020
use rustc_middle::ty::{PseudoCanonicalInput, Ty, TyCtxt, TypingEnv};
2121
use rustc_smir::rustc_internal;
22+
use rustc_span::DUMMY_SP;
2223
use stable_mir::Symbol;
2324
use stable_mir::ty::{RigidTy, Ty as TyStable, TyKind};
2425
use tracing::trace;
@@ -245,7 +246,7 @@ fn custom_coerce_unsize_info<'tcx>(
245246
source_ty: Ty<'tcx>,
246247
target_ty: Ty<'tcx>,
247248
) -> CustomCoerceUnsized {
248-
let def_id = tcx.require_lang_item(LangItem::CoerceUnsized, None);
249+
let def_id = tcx.require_lang_item(LangItem::CoerceUnsized, DUMMY_SP);
249250

250251
let trait_ref = TraitRef::new(tcx, def_id, tcx.mk_args_trait(source_ty, [target_ty.into()]));
251252

kani-compiler/src/kani_middle/points_to/points_to_analysis.rs

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,7 @@ impl<'tcx> Analysis<'tcx> for PointsToAnalysis<'_, 'tcx> {
218218
}
219219
// All `atomic_cxchg` intrinsics take `dst, old, src` as arguments.
220220
// This is equivalent to `destination = *dst; *dst = src`.
221-
Intrinsic::AtomicCxchg(_) | Intrinsic::AtomicCxchgWeak(_) => {
221+
Intrinsic::AtomicCxchg | Intrinsic::AtomicCxchgWeak => {
222222
let src_set = self.successors_for_operand(state, args[2].node.clone());
223223
let dst_set = self.successors_for_deref(state, args[0].node.clone());
224224
let destination_set = state.resolve_place(*destination, self.instance);
@@ -234,24 +234,24 @@ impl<'tcx> Analysis<'tcx> for PointsToAnalysis<'_, 'tcx> {
234234
}
235235
// All `atomic_store` intrinsics take `dst, val` as arguments.
236236
// This is equivalent to `*dst = val`.
237-
Intrinsic::AtomicStore(_) => {
237+
Intrinsic::AtomicStore => {
238238
let dst_set = self.successors_for_deref(state, args[0].node.clone());
239239
let val_set = self.successors_for_operand(state, args[1].node.clone());
240240
state.extend(&dst_set, &val_set);
241241
}
242242
// All other `atomic` intrinsics take `dst, src` as arguments.
243243
// This is equivalent to `destination = *dst; *dst = src`.
244-
Intrinsic::AtomicAnd(_)
245-
| Intrinsic::AtomicMax(_)
246-
| Intrinsic::AtomicMin(_)
247-
| Intrinsic::AtomicNand(_)
248-
| Intrinsic::AtomicOr(_)
249-
| Intrinsic::AtomicUmax(_)
250-
| Intrinsic::AtomicUmin(_)
251-
| Intrinsic::AtomicXadd(_)
252-
| Intrinsic::AtomicXchg(_)
253-
| Intrinsic::AtomicXor(_)
254-
| Intrinsic::AtomicXsub(_) => {
244+
Intrinsic::AtomicAnd
245+
| Intrinsic::AtomicMax
246+
| Intrinsic::AtomicMin
247+
| Intrinsic::AtomicNand
248+
| Intrinsic::AtomicOr
249+
| Intrinsic::AtomicUmax
250+
| Intrinsic::AtomicUmin
251+
| Intrinsic::AtomicXadd
252+
| Intrinsic::AtomicXchg
253+
| Intrinsic::AtomicXor
254+
| Intrinsic::AtomicXsub => {
255255
let src_set = self.successors_for_operand(state, args[1].node.clone());
256256
let dst_set = self.successors_for_deref(state, args[0].node.clone());
257257
let destination_set = state.resolve_place(*destination, self.instance);
@@ -669,7 +669,6 @@ fn is_identity_aliasing_intrinsic(intrinsic: Intrinsic) -> bool {
669669
| Intrinsic::PowF64
670670
| Intrinsic::PowIF32
671671
| Intrinsic::PowIF64
672-
| Intrinsic::PrefAlignOf
673672
| Intrinsic::PtrGuaranteedCmp
674673
| Intrinsic::PtrOffsetFrom
675674
| Intrinsic::PtrOffsetFromUnsigned
@@ -728,7 +727,7 @@ fn is_identity_aliasing_intrinsic(intrinsic: Intrinsic) -> bool {
728727
/* SIMD operations */
729728
true
730729
}
731-
Intrinsic::AtomicFence(_) | Intrinsic::AtomicSingleThreadFence(_) => {
730+
Intrinsic::AtomicFence | Intrinsic::AtomicSingleThreadFence => {
732731
/* Atomic fences */
733732
true
734733
}

0 commit comments

Comments
 (0)