¿Puede GCC advertirme sobre la modificación de los campos de una estructura constante en C99?

Me topé con un pequeño problema al intentar hacer un código const-correct.

Me hubiera gustado escribir una función que lleve un puntero a una estructura constante, para decirle al compilador "por favor dígame si estoy modificando la estructura, porque realmente no quiero".

De repente se me ocurrió que el compilador me permitirá hacer esto:

struct A
{
    char *ptrChar;
};

void f(const struct A *ptrA)
{
    ptrA->ptrChar[0] = 'A'; // NOT DESIRED!!
}

Lo cual es comprensible, porque lo que en realidad es constante es el puntero en sí, pero no el tipo al que apunta. Sin embargo, me gustaría que el compilador me dijera que estoy haciendo algo que no quiero hacer, si eso es posible.

Usé gcc como mi compilador. Aunque sé que el código anterior debería ser legal, de todos modos verifiqué si emitiría una advertencia, pero no llegó nada. Mi línea de comando fue:

gcc -std=c99 -Wall -Wextra -pedantic test.c

¿Es posible solucionar este problema?

Respuestas a la pregunta(7)

Su respuesta a la pregunta