Re: how to cast away 'volatile'?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.

[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux