aboutsummaryrefslogtreecommitdiff
path: root/cortex-m-rt/examples/warnings.rs
diff options
context:
space:
mode:
authorGravatar bors[bot] <26634292+bors[bot]@users.noreply.github.com> 2020-01-26 19:13:01 +0000
committerGravatar GitHub <noreply@github.com> 2020-01-26 19:13:01 +0000
commite1994fba68774c85ff0ebeb983f4711bb61e4b97 (patch)
tree759535f8c88c13a5c4356550836a1dd700b98422 /cortex-m-rt/examples/warnings.rs
parent22145aeb5dd1c25e4df2f3320e7ae7e47a9a0c6c (diff)
parenta0a17868686028a38ff9d3569b38993c315b8c95 (diff)
downloadcortex-m-e1994fba68774c85ff0ebeb983f4711bb61e4b97.tar.gz
cortex-m-e1994fba68774c85ff0ebeb983f4711bb61e4b97.tar.zst
cortex-m-e1994fba68774c85ff0ebeb983f4711bb61e4b97.zip
Merge #241
241: Fix unused doc lint firing on `#[pre_init]` and add a test r=adamgreig a=jonas-schievink Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
Diffstat (limited to 'cortex-m-rt/examples/warnings.rs')
-rw-r--r--cortex-m-rt/examples/warnings.rs50
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() {}