https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61579
--- Comment #8 from Manuel López-Ibáñez <manu at gcc dot gnu.org> --- (In reply to David Brown from comment #7) > Could "-Wwrite-strings" be split into two options? The warning could remain > (and become part of -Wall for C as well as C++) if the compiler can spot and > warn about attempts to write to string literals, while keeping these of type > "char[len]" as required by C. I think the issue is that the warning is implemented by changing the type of string literals and then using the already existing warning for passing const char* to char*. Someone would need to reimplement the warning to explicitly detect string literals instead of changing their type, probably somewhere in this function: https://github.com/gcc-mirror/gcc/blob/259c3965b1ba04f7ee022846af6173fb1c343bc8/gcc/c/c-typeck.c#L6585 > A new option "-fconst-strings" could be put under "Code Gen Options" which > makes C string literals be type "const char[len]" for those that want it, > encouraging a slightly safer code style that is not standard C. I am not sure this is a good solution, since the only benefit of -fconst-strings would be to trigger the warnings. I'm pretty sure it will not affect optimization, so it is useless as a codegen option. It doesn't solve all the issues described in comment #0. The fix is the one outlined above: detect that the argument or assigment is a literal string and special case the "discarding const qualifier" to trigger in that case with -Write-strings. But, the only way to find out for sure is to submit a patch to gcc-patches and start the discussion.