Hi, I've implemented -Wstring-plus-int and -Wstring-plus-char (like their counterpart in Clang) for GCC.
This series of patch has been bootstrapped and regtested. OK for trunk? Currently these options are not enabled by default like Clang does. Maybe we could make them enabled by default or by -Wall/-Wextra later. Xi Ruoyao (6): Move char_type_p prototype into c-common.h New warning option -Wstring-plus-int New warning option -Wstring-plus-char New tests for -Wstring-plus-int New tests for -Wstring-plus-char Document new warning options gcc/c-family/c-common.c | 25 ++++++++++++++++++++ gcc/c-family/c-common.h | 2 ++ gcc/c-family/c-warn.c | 22 ++++++++++++++++++ gcc/c-family/c.opt | 10 ++++++++ gcc/c/c-typeck.c | 17 +++++++++++++- gcc/cp/call.c | 28 ++++++++++++++++++++++ gcc/cp/cp-tree.h | 1 - gcc/cp/tree.c | 2 +- gcc/doc/invoke.texi | 22 +++++++++++++++++- gcc/testsuite/c-c++-common/Wstring-plus-char.c | 26 +++++++++++++++++++++ gcc/testsuite/c-c++-common/Wstring-plus-int.c | 26 +++++++++++++++++++++ gcc/testsuite/g++.dg/Wstring-plus-char-1.C | 16 +++++++++++++ gcc/testsuite/g++.dg/Wstring-plus-char-2.C | 26 +++++++++++++++++++++ gcc/testsuite/g++.dg/Wstring-plus-char-3.C | 32 ++++++++++++++++++++++++++ gcc/testsuite/g++.dg/Wstring-plus-int-1.C | 9 ++++++++ gcc/testsuite/g++.dg/Wstring-plus-int-2.C | 10 ++++++++ 16 files changed, 270 insertions(+), 4 deletions(-) create mode 100644 gcc/testsuite/c-c++-common/Wstring-plus-char.c create mode 100644 gcc/testsuite/c-c++-common/Wstring-plus-int.c create mode 100644 gcc/testsuite/g++.dg/Wstring-plus-char-1.C create mode 100644 gcc/testsuite/g++.dg/Wstring-plus-char-2.C create mode 100644 gcc/testsuite/g++.dg/Wstring-plus-char-3.C create mode 100644 gcc/testsuite/g++.dg/Wstring-plus-int-1.C create mode 100644 gcc/testsuite/g++.dg/Wstring-plus-int-2.C -- Xi Ruoyao <r...@stu.xidian.edu.cn> School of Aerospace Science and Technology, Xidian University