Skip to content

Commit

Permalink
Merge #241
Browse files Browse the repository at this point in the history
241: Fix unused doc lint firing on `#[pre_init]` and add a test r=adamgreig a=jonas-schievink



Co-authored-by: Jonas Schievink <[email protected]>
  • Loading branch information
bors[bot] and jonas-schievink authored Jan 26, 2020
2 parents 22145ae + a0a1786 commit e1994fb
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 0 deletions.
4 changes: 4 additions & 0 deletions cortex-m-rt/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,10 @@ compiletest_rs = "0.4.0"
name = "device"
required-features = ["device"]

[[example]]
name = "warnings"
required-features = ["device"]

[[test]]
name = "compiletest"
required-features = ["device"]
Expand Down
50 changes: 50 additions & 0 deletions cortex-m-rt/examples/warnings.rs
Original file line number Diff line number Diff line change
@@ -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() {}
1 change: 1 addition & 0 deletions cortex-m-rt/macros/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -767,6 +767,7 @@ pub fn pre_init(args: TokenStream, input: TokenStream) -> TokenStream {

quote!(
#[export_name = "__pre_init"]
#[allow(missing_docs)] // we make a private fn public, which can trigger this lint
#(#attrs)*
pub unsafe fn #ident() #block
)
Expand Down

0 comments on commit e1994fb

Please sign in to comment.