https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70952
Bug ID: 70952 Summary: Missing warning for likely-erroneous octal escapes in string literals Product: gcc Version: 6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: amonakov at gcc dot gnu.org Target Milestone: --- GCC doesn't warn for: const char s[] = "\008"; (just the two zeros following the backslash become a part of the octal literal, so the string literal is equivalent to "\0""8") \008 and \009 in string literals are most likely errors (\08 and \09 work just as well if a nil character followed by a digit was really intended) I think a bit of a bikeshed is possible on the point how far we want to take it (do we warn for "\08"? for "\799"?). I think warning when the octal escape with less than 3 digits is followed by [89] is desirable (this catches all of the above), but warning when octal escape already has 3 digits may be not (this exempts "\0009" from the warning).