From 089af25cb61d2ef512038ce2b76f63ab4092328c Mon Sep 17 00:00:00 2001 From: David Malcolm Date: Thu, 1 Sep 2016 00:50:54 +0000 Subject: [PATCH] C: Fix missing spaces in 'struct' fix-it hints MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 | 5 +++++ gcc/c/c-parser.c | 6 +++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog index 2d991555f8d..3ac6648b45a 100644 --- a/gcc/c/ChangeLog +++ b/gcc/c/ChangeLog @@ -1,3 +1,8 @@ +2016-08-31 David Malcolm + + * 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 * c-decl.c (implicit_decl_warning): Use add_fixit_replace diff --git a/gcc/c/c-parser.c b/gcc/c/c-parser.c index c245e7035ae..0581899e307 100644 --- a/gcc/c/c-parser.c +++ b/gcc/c/c-parser.c @@ -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 % 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 % 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 % keyword to refer to the type", -- 2.30.2