Created attachment 38436 [details]
Test source code
When building with AVR-GCC 6.1.0, -ffunction-sections and any optimization level other than -O0 then strings that are passed as a parameter to a function like puts("whatever") will be stored in flash instead of RAM.
However, this will correctly store myString in RAM with -ffunction-sections:
static const char myString = "whatever";
avr-gcc -mmcu=atmega328 -Wall -Wextra -O1 -ffunction-sections main.c
Same as PR71151, more info there.
*** This bug has been marked as a duplicate of bug 71151 ***