]>
Commit | Line | Data |
---|---|---|
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 | ||
7 | use core::panic::PanicInfo; | |
8 | use core::sync::atomic::{AtomicUsize, Ordering}; | |
9 | ||
10 | static N: AtomicUsize = AtomicUsize::new(0); | |
11 | ||
12 | #[warn(clippy::main_recursion)] | |
13 | #[start] | |
5e7ed085 | 14 | fn 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] | |
27 | fn panic(_info: &PanicInfo) -> ! { | |
28 | loop {} | |
29 | } | |
30 | ||
31 | #[lang = "eh_personality"] | |
32 | extern "C" fn eh_personality() {} |