Given the following code: main () { const char *foo = 0; *foo = 0; }
gcc will refuse to compile it with: $ echo "main () { const char *foo = 0; *foo = 0; }" | gcc -x c -c - -o /dev/null <stdin>: In function ‘main’: <stdin>:1: error: assignment of read-only location Sure, foo is read-only, but *foo is just a memory location; one should be able to write to it. -- Summary: assumes target of a const pointer is read-only Product: gcc Version: 4.2.3 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: rmh at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33901