2004-11-28 Theodore A. Roth <troth@openavr.org>
+ * config/avr/avr.c (avr_handle_fndecl_attribute): Generate a
+ warning if the function name does not begin with "__vector" and the
+ function has either the 'signal' or 'interrupt' attribute.
+
+2004-11-28 Theodore A. Roth <troth@openavr.org>
+
* config/avr/avr.c (avr_mcu_types): Add entries for atmega48,
atmega88, atmega168, attiny13, attiny2313, at90can128, atmega165,
atmega325, atmega3250, atmega645 and atmega6450.
IDENTIFIER_POINTER (name));
*no_add_attrs = true;
}
+ else
+ {
+ const char *func_name = IDENTIFIER_POINTER (DECL_NAME (*node));
+ const char *attr = IDENTIFIER_POINTER (name);
+
+ /* If the function has the 'signal' or 'interrupt' attribute, test to
+ make sure that the name of the function is "__vector_NN" so as to
+ catch when the user misspells the interrupt vector name. */
+
+ if (strncmp (attr, "interrupt", strlen ("interrupt")) == 0)
+ {
+ if (strncmp (func_name, "__vector", strlen ("__vector")) != 0)
+ {
+ warning ("`%s' appears to be a misspelled interrupt handler",
+ func_name);
+ }
+ }
+ else if (strncmp (attr, "signal", strlen ("signal")) == 0)
+ {
+ if (strncmp (func_name, "__vector", strlen ("__vector")) != 0)
+ {
+ warning ("`%s' appears to be a misspelled signal handler",
+ func_name);
+ }
+ }
+ }
return NULL_TREE;
}