| //@ add-core-stubs |
| //@ needs-llvm-components: x86 |
| //@ compile-flags: --target x86_64-unknown-linux-gnu -Zsanitizer=address -Ctarget-feature=-crt-static |
| |
| // Make sure we do not request sanitizers for naked functions. |
| |
| #![crate_type = "lib"] |
| #![feature(no_core)] |
| #![no_std] |
| #![no_core] |
| #![feature(abi_x86_interrupt)] |
| |
| extern crate minicore; |
| use minicore::*; |
| |
| #[no_mangle] |
| pub fn caller() { |
| unsafe { asm!("call {}", sym page_fault_handler) } |
| } |
| |
| // CHECK: declare x86_intrcc void @page_fault_handler(){{.*}}#[[ATTRS:[0-9]+]] |
| #[unsafe(naked)] |
| #[no_mangle] |
| pub extern "x86-interrupt" fn page_fault_handler() { |
| naked_asm!("ud2") |
| } |
| |
| // CHECK: #[[ATTRS]] = |
| // CHECK-NOT: sanitize_address |
| // CHECK: !llvm.module.flags |