Der ursprünglicher Zeiger hatte als Ziel ein volatile Objekt. "volatile" ist der fehlende Qualifier, der angemeckert wird.

Bei Zugriffen via pvar wird GCC also nicht mehr davon ausgehen, daß sich der Zielinhalt "plötzlich" ändern kann.

Die Warnung kann vermieden werden über

Code:
volatile struct
{
   void volatile * pvar;
} nav;
oder über den obigen Cast. Beide Ansätze liefern aber nicht das gleiche (überleg dir, was der Unterschied ist )