http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59396

            Bug ID: 59396
           Summary: [avr] Wrong warning with ISR() and -flto
           Product: gcc
           Version: 4.8.3
            Status: UNCONFIRMED
          Severity: minor
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: gjl at gcc dot gnu.org

Created attachment 31387
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=31387&action=edit
isr.c: The C source

Following source will throw a warning if compiled, e.g., 

$ avr-gcc isr.c -mmcu=atmega8 -flto


#define __INTR_ATTRS used, externally_visible

#define ISR(vector,...)                                                 \
    void vector (void) __attribute__ ((signal,__INTR_ATTRS)) __VA_ARGS__; \
    void vector (void)

#define ADC_vect __vector_14


ISR (ADC_vect)
{
}

int main()
{
    return 0;
}


The defines are copy-pased from AVR-Libc and are the most common way to define
interrupt service routines: Use ISR() with a isr vector name.

The warning is:

In function '__vector_14':
isr.c:10:1: warning: '_vector_14' appears to be a misspelled signal handler
[enabled by default]
 ISR (ADC_vect)
 ^

Reply via email to