This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/57631] [patch] spurious warning for avr interrupts with asm labels


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

--- Comment #5 from Georg-Johann Lay <gjl at gcc dot gnu.org> ---
(In reply to pebbles from comment #4)
> (In reply to Georg-Johann Lay from comment #3)
>> Would you explain what you are trying to achieve?
> 
> For one thing, I'm coding in C++, so the handlers may be mangled to the
> wrong symbols unless I tell the compiler what to name them.  The warning is
> misleading at least in this case.

The ISR macro is defined by AVR-LibC. It adds extern "C" to ISR if compiled for
C++.  Thus, the handlers are not mangled and names like __vector_<num> are used
even if compiled for C++.

Moreover, you should not use __vector_<num> firectly, use the support macros
from avr/io.h and avr/interrupt.h.  They work for C++.  If not, please file a
bug report against AVR-LibC.

> In C++ it's conventional to place symbols inside namespaces or classes over
> prefixing them with underscores.  I'm writing a library and would like users
> to be able to define the handlers with names and scopes that match the style
> conventions of the project.

Don't use __vector_<num> directly; use defines from AVR-LibC like INT0_vect
etc.  Cf. the AVR-LibC documentation.

>> You can name the function __vectorFOO or __vector_my_ISR_function or
>> whatever without raising a warning.
> 
> But that requires reading the source of GCC, which I have begun doing but is
> usually not a prerequisite for coding.  The warning should tell me that
> straight out.

You should read the documentation of AVR-LibC, of course.  You can add
documentation parts to the GCC documentation if you find it helpful.  However,
users typically read the AVR-LibC manual because ISR and the vector names are
supplyied by AVR-LibC's av/io.h and avr/interrupt.h.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]