This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/62181] [C/C++] Expected new warning: "adding 'char' to a string does not append to the string" [-Wstring-plus-int]
- From: "ryxi at stu dot xidian.edu.cn" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 15 Mar 2017 06:58:14 +0000
- Subject: [Bug c++/62181] [C/C++] Expected new warning: "adding 'char' to a string does not append to the string" [-Wstring-plus-int]
- Auto-submitted: auto-generated
- References: <bug-62181-4@http.gcc.gnu.org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62181
--- Comment #5 from Xi Ruoyao <ryxi at stu dot xidian.edu.cn> ---
Some clang-5.0 warning case:
~~~
Wstring-plus-int.c:20:24: warning: adding 'int' to a string does not append to
the string [-Wstring-plus-int]
const char *a = "aa" + 'a'; /* { dg-warning "does not append" } */
~~~~~^~~~~
Wstring-plus-int.c:20:24: note: use array indexing to silence this warning
const char *a = "aa" + 'a'; /* { dg-warning "does not append" } */
^
& [ ]
Wstring-plus-int.c:20:24: warning: adding 'char' to a string pointer does not
append to the string [-Wstring-plus-char]
const char *a = "aa" + 'a'; /* { dg-warning "does not append" } */
~~~~~^~~~~
Wstring-plus-int.c:20:24: note: use array indexing to silence this warning
const char *a = "aa" + 'a'; /* { dg-warning "does not append" } */
^
& [ ]
Wstring-plus-int.c:21:28: warning: adding 'int' to a string does not append to
the string [-Wstring-plus-int]
const wchar_t *b = L"aa" + L'a'; /* { dg-warning "does not append" } */
~~~~~~^~~~~~
Wstring-plus-int.c:21:28: note: use array indexing to silence this warning
const wchar_t *b = L"aa" + L'a'; /* { dg-warning "does not append" } */
^
& [ ]
Wstring-plus-int.c:22:24: warning: adding 'int' to a string does not append to
the string [-Wstring-plus-int]
const char *e = "aa" + getchar(); /* { dg-warning "does not append" } */
~~~~~^~~~~~~~~~~
Wstring-plus-int.c:22:24: note: use array indexing to silence this warning
const char *e = "aa" + getchar(); /* { dg-warning "does not append" } */
^
& [ ]
Wstring-plus-int.c:25:21: warning: adding 'char' to a string pointer does not
append to the string [-Wstring-plus-char]
const char *f = a + 'a'; /* { dg-warning "does not append" } */
~~^~~~~
Wstring-plus-int.c:25:21: note: use array indexing to silence this warning
const char *f = a + 'a'; /* { dg-warning "does not append" } */
^
& [ ]
Wstring-plus-int.c:26:23: warning: adding 'char' to a string pointer does not
append to the string [-Wstring-plus-char]
const char *g = 'a' + a; /* { dg-warning "does not append" } */
~~~~^~~
Wstring-plus-int.c:26:23: note: use array indexing to silence this warning
6 warnings generated.
~~~
Note the both warnings are reported at line 22.
By the way clang -Wstring-plus-char doesn't warn for `a += 'a'`. I think
we should handle it.
I've submitted a series of patches about this PR. I'll adjust them to be
like clang-5.0 and resubmit them in stage 1.