Applied this patchlet for a more precise diagnostic.

Johann

--

AVR: Adjust message for SIGNAL and INTERRUPT usage

gcc/
        * config/avr/avr.cc (avr_set_current_function): Adjust diagnostic
        for deprecated SIGNAL and INTERRUPT usage without respective header.

diff --git a/gcc/config/avr/avr.cc b/gcc/config/avr/avr.cc
index 12c59668b4c..4a5a921107b 100644
--- a/gcc/config/avr/avr.cc
+++ b/gcc/config/avr/avr.cc
@@ -1495,14 +1495,20 @@ avr_set_current_function (tree decl)
// Common problem is using "ISR" without first including avr/interrupt.h.
   const char *name = IDENTIFIER_POINTER (DECL_NAME (decl));
   name = default_strip_name_encoding (name);
-  if (strcmp ("ISR", name) == 0
-      || strcmp ("INTERRUPT", name) == 0
-      || strcmp ("SIGNAL", name) == 0)
+  if (strcmp ("ISR", name) == 0)
     {
       warning_at (loc, OPT_Wmisspelled_isr, "%qs is a reserved identifier"
                  " in AVR-LibC.  Consider %<#include <avr/interrupt.h>%>"
                  " before using the %qs macro", name, name);
     }
+  if (strcmp ("INTERRUPT", name) == 0
+      || strcmp ("SIGNAL", name) == 0)
+    {
+ warning_at (loc, OPT_Wmisspelled_isr, "%qs is a deprecated identifier"
+                 " in AVR-LibC.  Consider %<#include <avr/interrupt.h>%>"
+                 " or %<#include <compat/deprecated.h>%>"
+                 " before using the %qs macro", name, name);
+    }
 #endif // AVR-LibC naming conventions

   /* Don't print the above diagnostics more than once.  */

Reply via email to