Hi, This patch introduces new flags for warning 'misspelled interrupt/ signal handler'. Flag -Wmisspelled-isr is enabled by default and it will warn user if the interrupt/ signal handler is without '__vector' prefix. Flag -Wno-misspelled-isr shall be enabled by user to allow custom names, i.e. without __vector prefix.
// avr-gcc -c test.c void custom_interruption(void) __attribute__((signal)); void custom_interruption(void) {} Behavior after applying this patch: $ avr-gcc test.c test.c: In function 'custom_interruption': test.c:2:6: warning: 'custom_interruption' appears to be a misspelled signal handler void custom_interruption(void) {} ^~~~~~~~~~~~~~~~~~~ $ avr-gcc test.c -Wmisspelled-isr test.c: In function 'custom_interruption': test.c:2:6: warning: 'custom_interruption' appears to be a misspelled signal handler void custom_interruption(void) {} ^~~~~~~~~~~~~~~~~~~ $ avr-gcc test.c -Wno-misspelled-isr $ If OK, could someone commit please? I do not have commit access. Regards, Pitchumani gcc/ChangeLog 2016-06-10 Pitchumani Sivanupandi <pitchuman...@atmel.com> * config/avr/avr.c (avr_set_current_function): Warn misspelled interrupt/ signal handler if warn_misspelled_isr flag is set. * config/avr/avr.opt (Wmisspelled-isr): New warning flag. Enabled by default to warn misspelled interrupt/ signal handler.
diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c index ba5cd91..587bdbc 100644 --- a/gcc/config/avr/avr.c +++ b/gcc/config/avr/avr.c @@ -753,7 +753,7 @@ avr_set_current_function (tree decl) that the name of the function is "__vector_NN" so as to catch when the user misspells the vector name. */ - if (!STR_PREFIX_P (name, "__vector")) + if ((!STR_PREFIX_P (name, "__vector")) && (avr_warn_misspelled_isr)) warning_at (loc, 0, "%qs appears to be a misspelled %s handler", name, isr); } diff --git a/gcc/config/avr/avr.opt b/gcc/config/avr/avr.opt index 8809b9b..0703f5a 100644 --- a/gcc/config/avr/avr.opt +++ b/gcc/config/avr/avr.opt @@ -91,6 +91,10 @@ Waddr-space-convert Warning C Report Var(avr_warn_addr_space_convert) Init(0) Warn if the address space of an address is changed. +Wmisspelled-isr +Target Warning Report Var(avr_warn_misspelled_isr) Init(1) +Warn if the ISR is misspelled, i.e. without __vector prefix. Enabled by default. + mfract-convert-truncate Target Report Mask(FRACT_CONV_TRUNC) Allow to use truncation instead of rounding towards 0 for fractional int types.