]> git.proxmox.com Git - rustc.git/blame - src/tools/clippy/tests/ui/large_stack_arrays.rs
New upstream version 1.74.1+dfsg1
[rustc.git] / src / tools / clippy / tests / ui / large_stack_arrays.rs
CommitLineData
f20569fa
XL
1#![warn(clippy::large_stack_arrays)]
2#![allow(clippy::large_enum_variant)]
3
4#[derive(Clone, Copy)]
5struct S {
6 pub data: [u64; 32],
7}
8
9#[derive(Clone, Copy)]
10enum E {
11 S(S),
12 T(u32),
13}
14
2b03887a
FG
15pub static DOESNOTLINT: [u8; 512_001] = [0; 512_001];
16pub static DOESNOTLINT2: [u8; 512_001] = {
17 let x = 0;
18 [x; 512_001]
19};
20
fe692bf9
FG
21fn issue_10741() {
22 #[derive(Copy, Clone)]
23 struct Large([u32; 100_000]);
24
25 fn build() -> Large {
26 Large([0; 100_000])
27 }
28
29 let _x = [build(); 3];
781aab86 30 //~^ ERROR: allocating a local array larger than 512000 bytes
fe692bf9
FG
31
32 let _y = [build(), build(), build()];
781aab86 33 //~^ ERROR: allocating a local array larger than 512000 bytes
fe692bf9
FG
34}
35
f20569fa
XL
36fn main() {
37 let bad = (
38 [0u32; 20_000_000],
781aab86 39 //~^ ERROR: allocating a local array larger than 512000 bytes
f20569fa 40 [S { data: [0; 32] }; 5000],
781aab86 41 //~^ ERROR: allocating a local array larger than 512000 bytes
f20569fa 42 [Some(""); 20_000_000],
781aab86 43 //~^ ERROR: allocating a local array larger than 512000 bytes
f20569fa 44 [E::T(0); 5000],
781aab86 45 //~^ ERROR: allocating a local array larger than 512000 bytes
9c376795 46 [0u8; usize::MAX],
781aab86 47 //~^ ERROR: allocating a local array larger than 512000 bytes
f20569fa
XL
48 );
49
50 let good = (
51 [0u32; 1000],
52 [S { data: [0; 32] }; 1000],
53 [Some(""); 1000],
54 [E::T(0); 1000],
55 [(); 20_000_000],
56 );
57}