http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56263
--- Comment #3 from demiurg_spb at freemail dot ru 2013-02-12 06:47:43 UTC --- (In reply to comment #2) > This cannot work because ISO/IEC TR18037 forces these literals into generic > space. > ISO/IEC TR18037 5.1.2 Address-space type qualifiers: If the type of an object is qualified by an address space name, the object is allocated in the specified address space; otherwise, the object is allocated in the generic address space. I just re-read the standard. I could not find any reason not permitted to place the data in __flash address space in that case: const char __flash* const __flash names[] = {"flash_str1", "flash_str2"}; IAR compilers it does, and that hinders gcc do the same? I think it's an easy misunderstanding, preventing common sense ...