Georg-Johann Lay <a...@gjlay.de> writes:

> Suppose avr.c:avr_out_lpm which is used to print insns in final,
> e.g. ADJUST_INSN_LENGTH.
>
> Should avr_out_lpm be moced to avr-c.c? And avr-c.c include all the
> rtl.h, tree.h, output.h etc. which is also needed by the functions
> that like to use c_addr_space_name?

It's fine for avr-c.c to include rtl.h, tree.h, etc. (though including
tree.h is unusual).  It's fine for avr-c.c to call functions in avr.c.
The point is that functions that are C/C++ specific need to not be in
avr.c, because they will break for languages other than C/C++.  In this
terminology, LTO counts as a language.

> Is is legitimate to use MEM_ADDR_SPACE in avr.c?

Yes.

> Is is legitimate to use TYPE_ADDR_SPACE in avr.c?

Yes.

> Must all this put into avr-c.c?

Not for that reason, no.

To a first approximation, anything that refers to something declared in
c-common.h must be in avr-c.c, not in avr.c.

Ian

Reply via email to