================ @@ -263,11 +263,17 @@ bool AVRAsmPrinter::doFinalization(Module &M) { auto *Section = cast<MCSectionELF>(TLOF.SectionForGlobal(&GO, TM)); if (Section->getName().starts_with(".data")) NeedsCopyData = true; - else if (Section->getName().starts_with(".rodata") && SubTM->hasLPM()) + else if (Section->getName().starts_with(".rodata") && SubTM->hasLPM()) { // AVRs that have a separate program memory (that's most AVRs) store - // .rodata sections in RAM. - NeedsCopyData = true; - else if (Section->getName().starts_with(".bss")) + // .rodata sections in RAM, + // but XMEGA3 family maps all flash in the data space. + // Invoking __do_copy_data with 0 bytes to copy will crash, + // so we let the loader handle this for newer devices. + if (!(SubTM->hasFeatureSetFamilyXMEGA2() || ---------------- MaskRay wrote:
Unless trivial (e.g. typo fix), "marked this conversation as resolved." should only be used by reviewers per suggestions on https://discourse.llvm.org/t/rfc-github-pr-resolve-conversation-button/73178 https://github.com/llvm/llvm-project/pull/146244 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits