https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92606
--- Comment #28 from Georg-Johann Lay <gjl at gcc dot gnu.org> --- (In reply to Richard Biener from comment #25) > I wonder if it would be possible to set the appropriate address-space when > parsing the "progmem" attribute in the target? No, that's not possible. You cannot adjust all uses to also refer to the different address-space. And qualifiers and attributes behave quite differently. > For ICF (or more generally IPA) there's comp_type_attributes which > we already check and which dispatches to target code. We're also > rejecting differing DECL_ATTRIBUTES: This would make sense to also use for variables, or better still call a target hook to reject specific combinations. Attrs like "used", "unused" etc. should still be ok, but the back-end knows best, IMO. And different address-spaces might also work, e.g. when one decl is progmem (AS0) and the other is __flash (AS1). So the current fix misses some opportunities (just to mention it, not that I think it would matter much). > so I wonder what happens here? Does AVR not actually add the progmem > attribute? It always adds the progmem attribute (but may bail out, e.g. when not "const").