@@ -385,29 +385,9 @@ pub fn intern_const_alloc_recursive<M: CompileTimeMachine<'mir, 'tcx>>(
385
385
} else if ecx. memory . dead_alloc_map . contains_key ( & alloc_id) {
386
386
// dangling pointer
387
387
throw_unsup ! ( ValidationFailure ( "encountered dangling pointer in final constant" . into( ) ) )
388
- } else if let Some ( _) = ecx. tcx . alloc_map . lock ( ) . get ( alloc_id) {
389
- // We have hit an `AllocId` that belongs to an already interned static,
390
- // and are thus not interning any further.
391
-
392
- // For `InternKind::Promoted` this is only reachable for allocations
393
- // created for string and byte string literals, since these are interned immediately
394
- // at creation time.
395
-
396
- // FIXME(oli-obk): Since we are also checking things during interning,
397
- // we should probably continue doing those checks no matter what we encounter.
398
- // So we basically have to check if the allocation is ok as per the interning rules as
399
- // if we interned it right here.
400
- // This should be as simple as
401
- /*
402
- for &(_, ((), reloc)) in alloc.relocations().iter() {
403
- if leftover_allocations.insert(reloc) {
404
- todo.push(reloc);
405
- }
406
- }
407
- */
408
- // But I (oli-obk) haven't thought about the ramnificatons yet. This also would cause
409
- // compile-time regressions, so we should think about caching these.
410
- } else {
388
+ } else if ecx. tcx . alloc_map . lock ( ) . get ( alloc_id) . is_none ( ) {
389
+ // We have hit an `AllocId` that is neither in local or global memory and isn't marked
390
+ // as dangling by local memory.
411
391
span_bug ! ( ecx. tcx. span, "encountered unknown alloc id {:?}" , alloc_id) ;
412
392
}
413
393
}
0 commit comments