Arduino Internal Warning

The line in question reads:

  const char PROGMEM *p = (const char PROGMEM *)ifsh;

The PROGMEM is a macro, which (ultimately) translates to:

__attribute__((__progmem__))

So the whole line reads:

  const char __attribute__((__progmem__)) *p = (const char __attribute__((__progmem__)) *)ifsh;

At least one of those progmem attributes must be redundant in the context of how you are calling that function. The ifsh is defined in the function prototype as:

size_t Print::print(const __FlashStringHelper *ifsh)

where __FlashStringHelper is a class defined in WString.h and is associated with the F() macro.

Under normal circumstances that warning doesn't appear, so it must be related to how you are calling the print function. Check through your program for all the print and println functions and work out by means of elimination (comment them all out and enable them one by one until it happens) which is causing the warning to appear. Show us that bit of code, including the definitions for any variables used in it, and we can try and see why it might be bringing up the warning.