https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89270
--- Comment #2 from Georg-Johann Lay <gjl at gcc dot gnu.org> --- (In reply to gandalf from comment #0) > I get an ICE For the time being, you can work around this by a macro from AVR-LibC or some equivalent inline asm: #include <avr/pgmspace.h> void test() { extern const char __data_load_end[]; __uint24 top = (__uint24) pgm_get_far_address (__data_load_end); }