File tree Expand file tree Collapse file tree 2 files changed +8
-13
lines changed Expand file tree Collapse file tree 2 files changed +8
-13
lines changed Original file line number Diff line number Diff line change
1
+ #![ feature( const_intoiterator_identity) ]
1
2
#![ feature( const_refs_to_cell) ]
2
3
#![ feature( generic_arg_infer) ]
3
4
#![ feature( const_trait_impl) ]
6
7
#![ feature( slice_ptr_get) ]
7
8
#![ feature( slice_ptr_len) ]
8
9
#![ feature( lint_reasons) ]
10
+ #![ feature( const_iter) ]
9
11
#![ feature( decl_macro) ]
10
12
#![ feature( asm_const) ]
13
+ #![ feature( const_for) ]
11
14
#![ deny( unsafe_op_in_unsafe_fn) ]
12
15
#![ allow( clippy:: verbose_bit_mask) ] // questionable
13
16
#![ cfg_attr(
Original file line number Diff line number Diff line change @@ -295,16 +295,13 @@ impl<T: StartupOptions + EntryPoint> StartupExt for T {
295
295
296
296
// Create section entries based on `MEMORY_MAP`
297
297
let mmap = Self :: MEMORY_MAP ;
298
- // `for` is unusable in `const fn` [ref:const_for]
299
- let mut i = 0 ;
300
- while i < mmap. len ( ) {
298
+ // `[T]::iter` is unusable in `const fn` [ref:const_slice_iter]
299
+ for i in 0 ..mmap. len ( ) {
301
300
let section = & mmap[ i] ;
302
301
let start_i = section. virtual_start / 0x100000 ;
303
302
let end_i = start_i + section. len / 0x100000 ;
304
303
305
- // `for` is unusable in `const fn` [ref:const_for]
306
- let mut k = start_i;
307
- while k < end_i {
304
+ for k in start_i..end_i {
308
305
if occupied[ k] {
309
306
panic ! ( "region overlap; some address ranges are specified more than once" ) ;
310
307
}
@@ -313,10 +310,7 @@ impl<T: StartupOptions + EntryPoint> StartupExt for T {
313
310
section. attr ,
314
311
) ;
315
312
occupied[ k] = true ;
316
- k += 1 ;
317
313
}
318
-
319
- i += 1 ;
320
314
}
321
315
322
316
table
@@ -325,14 +319,12 @@ impl<T: StartupOptions + EntryPoint> StartupExt for T {
325
319
326
320
const fn memory_map_maps_va < T : StartupOptions > ( va : usize ) -> bool {
327
321
let mmap = T :: MEMORY_MAP ;
328
- // `for` is unusable in `const fn` [ref:const_for]
329
- let mut i = 0 ;
330
- while i < mmap. len ( ) {
322
+ // `[T]::iter` is unusable in `const fn` [ref:const_slice_iter]
323
+ for i in 0 ..mmap. len ( ) {
331
324
let section = & mmap[ i] ;
332
325
if va >= section. virtual_start && va <= section. virtual_start + ( section. len - 1 ) {
333
326
return true ;
334
327
}
335
- i += 1 ;
336
328
}
337
329
false
338
330
}
You can’t perform that action at this time.
0 commit comments