[Bug c/57133] New: false const qualifier warning typedef
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57133 Bug #: 57133 Summary: false const qualifier warning typedef Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: minor Priority: P3 Component: c AssignedTo: unassig...@gcc.gnu.org ReportedBy: grpin...@gmail.com typedef char *type; void f(const type t) { } int main(void) { const char *str = "string"; f(str); return 0; } warning: passing argument 1 of 'f' discards 'const' qualifier from pointer target type [enabled by default] f(str); ^ note: expected 'type' but argument is of type 'const char *' void f(const type t) ^ It is similar with gcc 4.5.3.
[Bug c/57133] false const qualifier warning typedef
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57133 --- Comment #3 from grpintar at gmail dot com 2013-05-01 12:43:28 UTC --- (In reply to comment #1) > (In reply to comment #0) > > typedef char *type; > > > > void f(const type t) > > { > > This doesn't do what you think it does. t is now a const variable of type > char*, not a variable of type const char*. Observe: > > > cat pr57133.c > typedef char *type; > void f(const type t) { t = 0; } > void g(const type t) { *t = 0; } > > gcc -Wall -S pr57133.c > pr57133.c: In function 'f': > pr57133.c:2:1: error: assignment of read-only parameter 't' > > The warning in your main() is correct. I see. Sorry.