https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62181
Martin Sebor <msebor at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |msebor at gcc dot gnu.org --- Comment #6 from Martin Sebor <msebor at gcc dot gnu.org> --- With constant arguments (or those whose value or range is known), GCC should warn on the first declaration in comment #0 (copied below) not necessarily because the addition doesn't append 'c' to "aa" (i.e., with -Wstring-plus-char warns) but mainly because it results in an invalid pointer. const char *a = "aa" + 'c'; GCC should warn for a constant operand that results in an out-of-bounds pointer regardless of its type, such as the following: const char *a = "aa" + 4; GCC could (and, in my view, should) also warn on the following where the value of i isn't known but where its range is such that the addition will never result in a valid pointer: void f (int i) { if (i < 4) return; const char *a = "aa" + i; ... }