I try to keep my code free of warnings even when using warning level 3. In my code there are some function pointers like typedef void (*fptr)(mytype*) but some of the functions defined with this signature do not need the parameter. Thus I used something like void f(mytype *x) { ... return; x; } to avoid the warning unused local. This worked fine with C compiler version up to 5.05 but gives warning C138: expression with possibly no effect in version 6.00. Any idea how to solve this?