From 7e34184111dbdb72444e116d31db583e6a093ad4 Mon Sep 17 00:00:00 2001 From: Vadzim Dambrouski Date: Tue, 11 Jul 2017 14:41:09 +0300 Subject: [PATCH] [MSP430] User defined interrupt handlers should have correct CC. --- src/generate.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/generate.rs b/src/generate.rs index a5e4fa18..23c85142 100644 --- a/src/generate.rs +++ b/src/generate.rs @@ -313,6 +313,10 @@ pub fn interrupt( }); if *target != Target::None { + let abi = match *target { + Target::Msp430 => "msp430-interrupt", + _ => "C", + }; mod_items.push(quote! { #[cfg(feature = "rt")] #[macro_export] @@ -331,7 +335,7 @@ pub fn interrupt( #[allow(non_snake_case)] #[no_mangle] - pub extern "C" fn $NAME() { + pub extern #abi fn $NAME() { // check that the handler exists let _ = $crate::interrupt::Interrupt::$NAME; @@ -350,7 +354,7 @@ pub fn interrupt( ($NAME:ident, $path:path) => { #[allow(non_snake_case)] #[no_mangle] - pub extern "C" fn $NAME() { + pub extern #abi fn $NAME() { // check that the handler exists let _ = $crate::interrupt::Interrupt::$NAME;