Hi, if the C++ front-end decides that something will need constructing, it will silently put the stuff into .rodata so that according pgm_read_xxx will read garbage from .progmem. As proposed by Jason, this patch diagnoses such situations. Ok to commit? Johann PR target/81407 * config/avr/avr.c (avr_encode_section_info) [progmem && !TREE_READONLY]: Error if progmem object needs constructing.