@@ -52,7 +52,10 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
52
52
}
53
53
54
54
if self . tcx . has_attr ( def_id, sym:: rustc_args_required_const) {
55
- bug ! ( "reifying a fn ptr that requires const arguments" ) ;
55
+ span_bug ! (
56
+ self . cur_span( ) ,
57
+ "reifying a fn ptr that requires const arguments"
58
+ ) ;
56
59
}
57
60
58
61
let instance = ty:: Instance :: resolve_for_fn_ptr (
@@ -66,7 +69,7 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
66
69
let fn_ptr = self . memory . create_fn_alloc ( FnVal :: Instance ( instance) ) ;
67
70
self . write_scalar ( fn_ptr, dest) ?;
68
71
}
69
- _ => bug ! ( "reify fn pointer on {:?}" , src. layout. ty) ,
72
+ _ => span_bug ! ( self . cur_span ( ) , "reify fn pointer on {:?}" , src. layout. ty) ,
70
73
}
71
74
}
72
75
@@ -77,7 +80,7 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
77
80
// No change to value
78
81
self . write_immediate ( * src, dest) ?;
79
82
}
80
- _ => bug ! ( "fn to unsafe fn cast on {:?}" , cast_ty) ,
83
+ _ => span_bug ! ( self . cur_span ( ) , "fn to unsafe fn cast on {:?}" , cast_ty) ,
81
84
}
82
85
}
83
86
@@ -99,7 +102,7 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
99
102
let fn_ptr = self . memory . create_fn_alloc ( FnVal :: Instance ( instance) ) ;
100
103
self . write_scalar ( fn_ptr, dest) ?;
101
104
}
102
- _ => bug ! ( "closure fn pointer on {:?}" , src. layout. ty) ,
105
+ _ => span_bug ! ( self . cur_span ( ) , "closure fn pointer on {:?}" , src. layout. ty) ,
103
106
}
104
107
}
105
108
}
@@ -162,7 +165,8 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
162
165
assert ! ( src. layout. ty. is_unsafe_ptr( ) ) ;
163
166
return match * src {
164
167
Immediate :: ScalarPair ( data, _) => Ok ( data. into ( ) ) ,
165
- Immediate :: Scalar ( ..) => bug ! (
168
+ Immediate :: Scalar ( ..) => span_bug ! (
169
+ self . cur_span( ) ,
166
170
"{:?} input to a fat-to-thin cast ({:?} -> {:?})" ,
167
171
* src,
168
172
src. layout. ty,
@@ -216,7 +220,7 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
216
220
}
217
221
218
222
// Casts to bool are not permitted by rustc, no need to handle them here.
219
- _ => bug ! ( "invalid int to {:?} cast" , cast_ty) ,
223
+ _ => span_bug ! ( self . cur_span ( ) , "invalid int to {:?} cast" , cast_ty) ,
220
224
}
221
225
}
222
226
@@ -248,7 +252,7 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
248
252
// float -> f64
249
253
Float ( FloatTy :: F64 ) => Scalar :: from_f64 ( f. convert ( & mut false ) . value ) ,
250
254
// That's it.
251
- _ => bug ! ( "invalid float to {:?} cast" , dest_ty) ,
255
+ _ => span_bug ! ( self . cur_span ( ) , "invalid float to {:?} cast" , dest_ty) ,
252
256
}
253
257
}
254
258
@@ -287,7 +291,9 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
287
291
self . write_immediate ( val, dest)
288
292
}
289
293
290
- _ => bug ! ( "invalid unsizing {:?} -> {:?}" , src. layout. ty, cast_ty) ,
294
+ _ => {
295
+ span_bug ! ( self . cur_span( ) , "invalid unsizing {:?} -> {:?}" , src. layout. ty, cast_ty)
296
+ }
291
297
}
292
298
}
293
299
@@ -307,7 +313,12 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
307
313
assert_eq ! ( def_a, def_b) ;
308
314
if def_a. is_box ( ) || def_b. is_box ( ) {
309
315
if !def_a. is_box ( ) || !def_b. is_box ( ) {
310
- bug ! ( "invalid unsizing between {:?} -> {:?}" , src. layout. ty, cast_ty. ty) ;
316
+ span_bug ! (
317
+ self . cur_span( ) ,
318
+ "invalid unsizing between {:?} -> {:?}" ,
319
+ src. layout. ty,
320
+ cast_ty. ty
321
+ ) ;
311
322
}
312
323
return self . unsize_into_ptr (
313
324
src,
@@ -335,7 +346,12 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
335
346
}
336
347
Ok ( ( ) )
337
348
}
338
- _ => bug ! ( "unsize_into: invalid conversion: {:?} -> {:?}" , src. layout, dest. layout) ,
349
+ _ => span_bug ! (
350
+ self . cur_span( ) ,
351
+ "unsize_into: invalid conversion: {:?} -> {:?}" ,
352
+ src. layout,
353
+ dest. layout
354
+ ) ,
339
355
}
340
356
}
341
357
}
0 commit comments