Repository: rust
Issue: Simple `for` statement can be broken with linker error since nightly-2021-06-10-x86_64-unknown-linux-gnu
Labels: A-linkage,O-x86_64,T-compiler,C-bug

<!--
Thank you for filing a bug report! 🐛 Please provide a short summary of the bug,
along with any information you feel relevant to replicating the bug.
-->

Minimal reproducible code:

`.cargo/config.toml`

```toml
[build]
target = "x86_64-unknown-linux-gnu"

[profile.release]
panic = "abort"

[profile.dev]
panic = "abort"

[target.x86_64-unknown-linux-gnu]
linker = "rust-lld"

rustflags = [
  "-C", "no-redzone=yes",
  "-C", "relocation-model=static",
  "-C", "link-arg=--entry=KernelMain",
  "-C", "link-arg=--image-base=0x100000",
]
```

`main.rs`

```rust
#![no_std]
#![no_main]
#![feature(asm)]

use core::panic::PanicInfo;

fn halt() -> ! {
    loop {
      unsafe {
        asm!("hlt");
      }
    }
  }  

#[panic_handler]
fn panic_handler(_: &PanicInfo) -> ! {
    halt()
}


#[no_mangle]
pub extern "C" fn KernelMain(){
    for i in 0..1{

    }
}
```

These code above would raise following rust-lld error.

```
error: linking with `rust-lld` failed: exit status: 1
  |
  = note: "rust-lld" "-flavor" "gnu" "/home/kyasbal/workspace/zeros/repro/target/x86_64-unknown-linux-gnu/debug/deps/repro-976c68a0178ccd5f.1npei1tygnhrczdx.rcgu.o" "/home/kyasbal/workspace/zeros/repro/target/x86_64-unknown-linux-gnu/debug/deps/repro-976c68a0178ccd5f.264jhsddzkoxgus6.rcgu.o" "/home/kyasbal/workspace/zeros/repro/target/x86_64-unknown-linux-gnu/debug/deps/repro-976c68a0178ccd5f.2ckrphx4pb0zehup.rcgu.o" "/home/kyasbal/workspace/zeros/repro/target/x86_64-unknown-linux-gnu/debug/deps/repro-976c68a0178ccd5f.2corlzyicc7qnnx6.rcgu.o" "/home/kyasbal/workspace/zeros/repro/target/x86_64-unknown-linux-gnu/debug/deps/repro-976c68a0178ccd5f.4asd3b1yzhfnq5ye.rcgu.o" "/home/kyasbal/workspace/zeros/repro/target/x86_64-unknown-linux-gnu/debug/deps/repro-976c68a0178ccd5f.4ookqi1igbeby3gm.rcgu.o" "/home/kyasbal/workspace/zeros/repro/target/x86_64-unknown-linux-gnu/debug/deps/repro-976c68a0178ccd5f.59t41yohqrdcppo8.rcgu.o" "/home/kyasbal/workspace/zeros/repro/target/x86_64-unknown-linux-gnu/debug/deps/repro-976c68a0178ccd5f.y7uqq33a38kyux3.rcgu.o" "--as-needed" "-L" "/home/kyasbal/workspace/zeros/repro/target/x86_64-unknown-linux-gnu/debug/deps" "-L" "/home/kyasbal/workspace/zeros/repro/target/debug/deps" "-L" "/home/kyasbal/.rustup/toolchains/nightly-2021-06-10-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Bstatic" "/home/kyasbal/.rustup/toolchains/nightly-2021-06-10-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-2588c44e3ecacf72.rlib" "/home/kyasbal/.rustup/toolchains/nightly-2021-06-10-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-c8ded1707ad10767.rlib" "/home/kyasbal/.rustup/toolchains/nightly-2021-06-10-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-d231748acf961207.rlib" "-Bdynamic" "--eh-frame-hdr" "-znoexecstack" "-L" "/home/kyasbal/.rustup/toolchains/nightly-2021-06-10-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/home/kyasbal/workspace/zeros/repro/target/x86_64-unknown-linux-gnu/debug/deps/repro-976c68a0178ccd5f" "--gc-sections" "-zrelro" "-znow" "--entry=KernelMain" "--image-base=0x100000"
  = note: rust-lld: error: undefined symbol: memcpy
          >>> referenced by intrinsics.rs:1861 (/rustc/eab201df7028ebb6812c0b1a01702ac6ecfcceed/library/core/src/intrinsics.rs:1861)
          >>>               /home/kyasbal/workspace/zeros/repro/target/x86_64-unknown-linux-gnu/debug/deps/repro-976c68a0178ccd5f.4ookqi1igbeby3gm.rcgu.o:(core::intrinsics::copy_nonoverlapping::hce92df80101a2bb6)
          

error: aborting due to previous error; 1 warning emitted
```

This linker error is not observed when I use `nightly-2021-06-09-x86_64-unknown-linux-gnu` or comment out the empty `for` statement in KernelMain. This issue was reproduced in the other environment also by my friend.

I assume #86003 is related to this problem but I'm not so much sure why these change can cause this problem. I would happy to provide further more investigation if it was needed.