Matthew Woehlke writes: > I have a code snippet that looks roughly like this: > > extern void my_free(void* ptr); > > int foo() > { > volatile long * bar; > ... > my_free(bar); > } > > This generates the warning 'cast discards qualifiers from pointer target > type' at my_free() (gcc 3.4.3). Other than disabling the flag that > generates the warning (in general I want these warnings!), how do I > suppress this? my_free is of course a free() wrapper, i.e. I don't see > any problems discarding the qualifier at this point. I already tried > this, which seems like it used to work (I am moving the code from one > project to another): > > my_free(void*)bar); > > ...and it doesn't help. I think this is bad practice. You'd be far better advised to malloc() the memory, keep a void* pointer to it, but cast to volatile long * when volatile is actually required. Andrew.