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