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