AVR-LIbC's ISR-macros lead to confusing results for code like, e.g.
#include <avr/io.h>
#include <avr/interrupt.h>
void *p;
ISR (ADC_vect, ISR_NOBLOCK)
{
char c[10];
p = c;
}
which resolves a.a. to
void __vector_21 (void)
__attribute__ ((signal,used,externally_visible)) __attribute__((interrupt));
Which states that IRQs are turned off (signal) and IRQs are turned on
(interrupt) at the same time.
This leads to unexpected code generated by the compiler.
Thus, I'd like to introduce an error in avr-gcc saying
"function can only be one of 'interrupt', 'signal', 'OS_task', 'OS_main'
at the same time"
Ideas?
Johann
_______________________________________________
AVR-GCC-list mailing list
AVR-GCC-list@nongnu.org
https://lists.nongnu.org/mailman/listinfo/avr-gcc-list