oversensitive "use of cast expressions as lvalues is deprecated"

Shaun Jackman sjackman@telus.net
Thu Jun 24 15:56:00 GMT 2004


The following statement is the result of a macro expansion 
(hence all the extra parenthesis). gcc's giving me a new 
warning about using a casted lvalue. I don't see where there is 
a casted lvalue here. The rhs of the assigment is an rvalue, so 
I'll ignore that. port is casted, but it's an rvalue at this 
point. Once it's dereferenced it's an lvalue, but there's no 
further casting after that. What's gone wrong here?

int port;
const void* src;
(*((volatile uint16_t*)(port)) = (*((uint16_t *) src)++));

../../arch-at91/arch.c: In function `outportsw':
../../arch-at91/arch.c:79: warning: use of cast expressions as 
lvalues is deprecated

Cheers,
Shaun



More information about the Gcc-help mailing list