| //@ build-fail |
| |
| #![feature(large_assignments)] |
| #![move_size_limit = "1000"] |
| #![deny(large_assignments)] |
| #![allow(unused)] |
| |
| // Note: This type does not implement Copy. |
| struct Data([u8; 9999]); |
| |
| fn main() { |
| // Looking at llvm-ir output, we can see a memcpy'd into Data, so we want |
| // the lint to trigger here. |
| let data = Data([100; 9999]); //~ ERROR large_assignments |
| |
| // Looking at llvm-ir output, we can see that there is no memcpy involved in |
| // this function call. Instead, just a pointer is passed to the function. So |
| // the lint shall not trigger here. |
| take_data(data); |
| } |
| |
| fn take_data(data: Data) {} |