re PR c/7776 (const char* p = "foo"; if (p == "foo") ... is compiled without warning!)
authorRoger Sayle <roger@eyesopen.com>
Sun, 4 Dec 2005 19:56:47 +0000 (19:56 +0000)
committerRoger Sayle <sayle@gcc.gnu.org>
Sun, 4 Dec 2005 19:56:47 +0000 (19:56 +0000)
commite994a705a9d8447c17486c13d741c2692c475f67
tree0c868f77e7b841472e04bdb16256459255a05c04
parent93af36c5c18bae3a294d98e46300ea3a867ecf56
re PR c/7776 (const char* p = "foo"; if (p == "foo") ... is compiled without warning!)

PR c/7776
* common.opt (Wstring-literal-comparison): New command line option.
* c-opts.c (c_common_handle_option): Set it with -Wall.
* c-typeck.c (parser_build_binary_op): Issue warning if either
operand of a comparison operator is a string literal, except for
testing equality or inequality against NULL.

* doc/invoke.texi: Document new -Wstring-literal-comparison option.

* gcc.dg/Wstring-literal-comparison-1.c: New test case.
* gcc.dg/Wstring-literal-comparison-2.c: Likewise.
* gcc.dg/Wstring-literal-comparison-3.c: Likewise.
* gcc.dg/Wstring-literal-comparison-4.c: Likewise.

From-SVN: r108018
gcc/ChangeLog
gcc/c-opts.c
gcc/c-typeck.c
gcc/common.opt
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/Wstring-literal-comparison-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/Wstring-literal-comparison-2.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/Wstring-literal-comparison-3.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/Wstring-literal-comparison-4.c [new file with mode: 0644]