I created the following test code:
int x;
inline myfun (void*m)
{
x = *(int *)m;
}
int
bar (const void *p)
{
myfun ((void *)p);
}
If I compile it as:
gcc -c test.c
I don't get a warning. However:
gcc -O -c test.c
produces the following:
test.c: In function bar:
test.c:9: warning: passing argument 1 of myfun discards qualifiers from
pointer target type
It seems that this error is affected by inlining of myfun. I checked the gcc
head version and warning does not appear there. 4.1.2 also does not have it.
--
Summary: cast from "const void *" into "void *" produces a
warning
Product: gcc
Version: 4.2.3
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: nenad at intrepid dot com
GCC build triplet: x86_64-unknown-linux-gnu
GCC host triplet: x86_64-unknown-linux-gnu
GCC target triplet: x86_64
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36042