https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119068

            Bug ID: 119068
           Summary: Should -Wwrite-strings be renamed to -fwrite-strings?
           Product: gcc
           Version: 15.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: alx at kernel dot org
  Target Milestone: ---

-f flags are meant to change the meaning of code, while -W flags are meant to
add diagnostics without changing the meaning of code.


-Wwrite-strings is an oddity, since it does change the meaning of code:


alx@debian:~/tmp$ cat ws.c 
int
main(void)
{
        return _Generic(&*"", const char *: 0, char *: 1);
}
alx@debian:~/tmp$ gcc -Wall -Wextra -Wwrite-strings ws.c 
alx@debian:~/tmp$ ./a.out; echo $?
0
alx@debian:~/tmp$ gcc -Wall -Wextra -Wno-write-strings ws.c 
alx@debian:~/tmp$ ./a.out; echo $?
1
alx@debian:~/tmp$ clang -Weverything -Wwrite-strings ws.c -Wno-pre-c11-compat
alx@debian:~/tmp$ ./a.out; echo $?
0
alx@debian:~/tmp$ clang -Weverything -Wno-write-strings ws.c
-Wno-pre-c11-compatalx@debian:~/tmp$ ./a.out; echo $?
1


Should we add -fwrite-strings, and keep -Wwrite-strings as a deprecated
synonym?

Reply via email to