]> git.proxmox.com Git - rustc.git/blame - src/tools/clippy/tests/ui/crate_level_checks/no_std_main_recursion.rs
New upstream version 1.53.0+dfsg1
[rustc.git] / src / tools / clippy / tests / ui / crate_level_checks / no_std_main_recursion.rs
CommitLineData
cdc7bbd5 1// compile-flags: -Clink-arg=-nostartfiles
f20569fa
XL
2// ignore-macos
3// ignore-windows
4
cdc7bbd5 5#![feature(lang_items, start, libc)]
f20569fa
XL
6#![no_std]
7
8use core::panic::PanicInfo;
9use core::sync::atomic::{AtomicUsize, Ordering};
10
11static N: AtomicUsize = AtomicUsize::new(0);
12
13#[warn(clippy::main_recursion)]
14#[start]
15fn main(argc: isize, argv: *const *const u8) -> isize {
16 let x = N.load(Ordering::Relaxed);
17 N.store(x + 1, Ordering::Relaxed);
18
19 if x < 3 {
20 main(argc, argv);
21 }
22
23 0
24}
25
26#[allow(clippy::empty_loop)]
27#[panic_handler]
28fn panic(_info: &PanicInfo) -> ! {
29 loop {}
30}
31
32#[lang = "eh_personality"]
33extern "C" fn eh_personality() {}