diff options
author | 2020-01-26 18:26:28 +0100 | |
---|---|---|
committer | 2020-01-26 18:31:59 +0100 | |
commit | a0a17868686028a38ff9d3569b38993c315b8c95 (patch) | |
tree | 759535f8c88c13a5c4356550836a1dd700b98422 /cortex-m-rt/examples | |
parent | 36b33b21af1bed29a9e37e07d96ab779f3c2314e (diff) | |
download | cortex-m-a0a17868686028a38ff9d3569b38993c315b8c95.tar.gz cortex-m-a0a17868686028a38ff9d3569b38993c315b8c95.tar.zst cortex-m-a0a17868686028a38ff9d3569b38993c315b8c95.zip |
Add a test that enables ALL the warnings
Diffstat (limited to 'cortex-m-rt/examples')
-rw-r--r-- | cortex-m-rt/examples/warnings.rs | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/cortex-m-rt/examples/warnings.rs b/cortex-m-rt/examples/warnings.rs new file mode 100644 index 0000000..3372003 --- /dev/null +++ b/cortex-m-rt/examples/warnings.rs @@ -0,0 +1,50 @@ +//! Tests that a crate can still build with all warnings enabled. +//! +//! The code generated by the `cortex-m-rt` macros might need to manually +//! `#[allow]` some of them (even though Rust does that by default for a few +//! warnings too). + +#![no_std] +#![no_main] +#![deny(warnings, missing_docs, rust_2018_idioms)] + +extern crate cortex_m_rt; +extern crate panic_halt; + +use cortex_m_rt::{entry, exception, interrupt, pre_init, ExceptionFrame}; + +#[allow(non_camel_case_types)] +enum interrupt { + INT, +} + +extern "C" { + fn INT(); +} + +union Vector { + #[allow(dead_code)] + handler: unsafe extern "C" fn(), +} + +#[link_section = ".vector_table.interrupts"] +#[no_mangle] +#[used] +static __INTERRUPTS: [Vector; 1] = [Vector { handler: INT }]; + +/// Dummy interrupt. +#[interrupt] +fn INT() {} + +#[exception] +fn HardFault(_eh: &ExceptionFrame) -> ! { + loop {} +} + +#[entry] +fn main() -> ! { + loop {} +} + +#[pre_init] +unsafe fn pre_init() {} |