@@ -3270,8 +3270,7 @@ check_plain (location_t format_string_lo
"quoted %qs directive in format; "
"use %qs instead", "%s", "%qs");
else if (format_chars - orig_format_chars > 2
- && !strncasecmp (format_chars - 3, "can%'t", 5)
- && !ISALPHA (format_chars[1]))
+ && !strncasecmp (format_chars - 3, "can%'t", 6))
format_warning_substr (format_string_loc,
format_string_cst,
fmtchrpos - 3, fmtchrpos + 3, opt,
@@ -400,6 +400,8 @@ void test_cdiag_bad_words (tree t, gimpl
cdiag ("you can't do that"); /* { dg-warning "contraction 'can't' in format" } */
cdiag ("you can%'t do that");/* { dg-warning "contraction 'can%'t' in format" } */
cdiag ("Can%'t touch this.");/* { dg-warning "contraction 'Can%'t' in format" } */
+ cdiag ("can%'");
+ cdiag ("can%' whatever");
cdiag ("on the commandline");/* { dg-warning "misspelled term 'commandline' in format; use 'command line' instead" } */
cdiag ("command line option");/* { dg-warning "misspelled term 'command line option' in format; use 'command-line option' instead" } */
cdiag ("it mustn't be"); /* { dg-warning "contraction 'mustn't' in format" } */