C: Fix missing spaces in 'struct' fix-it hints
authorDavid Malcolm <dmalcolm@redhat.com>
Thu, 1 Sep 2016 00:50:54 +0000 (00:50 +0000)
committerDavid Malcolm <dmalcolm@gcc.gnu.org>
Thu, 1 Sep 2016 00:50:54 +0000 (00:50 +0000)
In r237714 I added fix-it hints to the C frontend for missing "struct"
keywords e.g.:

spellcheck-typenames.c:69:1: error: unknown type name ‘foo_t’; use
‘struct’ keyword to refer to the type
 foo_t *foo_ptr;
 ^~~~~
 struct

However when using the (not yet in trunk) option
 -fdiagnostics-generate-patch,
the generated patch is nonsensical:

  -foo_t *foo_ptr;
  +structfoo_t *foo_ptr;

Fix the fix-its by adding a trailing space to each one, giving:

  -foo_t *foo_ptr;
  +struct foo_t *foo_ptr;

gcc/c/ChangeLog:
* c-parser.c (c_parser_declaration_or_fndef): Add trailing space
to the insertion fixits for "struct", "union", and "enum".

From-SVN: r239912

gcc/c/ChangeLog
gcc/c/c-parser.c

index 2d991555f8d7c6904dd1388f50492337b38eed2f..3ac6648b45a2f6c4b599b9e72fd5e89eb41cd4a0 100644 (file)
@@ -1,3 +1,8 @@
+2016-08-31  David Malcolm  <dmalcolm@redhat.com>
+
+       * c-parser.c (c_parser_declaration_or_fndef): Add trailing space
+       to the insertion fixits for "struct", "union", and "enum".
+
 2016-08-30  David Malcolm  <dmalcolm@redhat.com>
 
        * c-decl.c (implicit_decl_warning): Use add_fixit_replace
index c245e7035aeba94d34cd11ac79d7bc8df61d75b4..0581899e307dd782cd1d6c45c0a8a050f9928f4b 100644 (file)
@@ -1685,7 +1685,7 @@ c_parser_declaration_or_fndef (c_parser *parser, bool fndef_ok,
       if (tag_exists_p (RECORD_TYPE, name))
        {
          /* This is not C++ with its implicit typedef.  */
-         richloc.add_fixit_insert ("struct");
+         richloc.add_fixit_insert ("struct ");
          error_at_rich_loc (&richloc,
                             "unknown type name %qE;"
                             " use %<struct%> keyword to refer to the type",
@@ -1693,7 +1693,7 @@ c_parser_declaration_or_fndef (c_parser *parser, bool fndef_ok,
        }
       else if (tag_exists_p (UNION_TYPE, name))
        {
-         richloc.add_fixit_insert ("union");
+         richloc.add_fixit_insert ("union ");
          error_at_rich_loc (&richloc,
                             "unknown type name %qE;"
                             " use %<union%> keyword to refer to the type",
@@ -1701,7 +1701,7 @@ c_parser_declaration_or_fndef (c_parser *parser, bool fndef_ok,
        }
       else if (tag_exists_p (ENUMERAL_TYPE, name))
        {
-         richloc.add_fixit_insert ("enum");
+         richloc.add_fixit_insert ("enum ");
          error_at_rich_loc (&richloc,
                             "unknown type name %qE;"
                             " use %<enum%> keyword to refer to the type",