As per the answer to question http​://stackoverflow.com/questions/27263344 I've changed this as follows (the function which takes the pointers uses an

unsigned long*

anyway):

extern unsigned long __flash_rwdata_start;

Now it occurs to me that the original definition had an implication of zero (or undefined) size, whereas the current definition does not, and unlike the answer to question 27263344 there is no "real underlying data type" that makes any logical sense.

Essentially I've defined a pointer that is valid, but does not point to a valid value, and thus it would be invalid to dereference.

Is there a safer or preferable way to avoid the warning, but without the idea of space being allocated, that can't be dereferenced?