[Bug other/90251] New: missing spaces in string literals

roland.illig at gmx dot de gcc-bugzilla@gcc.gnu.org
Thu Apr 25 16:27:00 GMT 2019


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90251

            Bug ID: 90251
           Summary: missing spaces in string literals
           Product: gcc
           Version: 9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: other
          Assignee: unassigned at gcc dot gnu.org
          Reporter: roland.illig at gmx dot de
  Target Milestone: ---

Created attachment 46246
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=46246&action=edit
linter for string literals

From engtype.c:

  printf ("\t -D | --debug "
          " \t# Give debug output to debug %s itself.\n", progname);

Splitting the string literal in the middle of two spaces looks arbitrary. This
applies to all string literals in print_usage.

From tree-ssa-loop-ch.c:

        fprintf (dump_file,
                 "  Not duplicating bb %i: condition based on non-IV loop"
                 "variant.\n", header->index);

From tree-vect-data-refs.c:

    return opt_result::failure_at (stmt_info->stmt,
                                   "not vectorized:"
                                   "not suitable for strided load %G",
                                   stmt_info->stmt);

From locales.c:

  "US", "United-States"
  "UY", "Uruguay",

The comma is missing at the end of the upper line.

From arc.c:

        fprintf (dump_file, ";; loop %d has a control like last insn;"
                 "add a nop\n",
                 loop->loop_no);


        fprintf (dump_file, ";; loop %d has a label as last insn;"
                 "add a nop\n",
                 loop->loop_no);

        fprintf (dump_file, ";; loop %d has no fallthru edge jumping"
                 "into the loop\n",
                 loop->loop_no);

From rx.c:

          warning (0, "unrecognized control register number: %d"
                   "- using %<psw%>", (int) INTVAL (op));


From decl.c:

    error ("too many braces around scalar initializer"
           "for type %qT", type);


From parser.c:

pedwarn (DECL_SOURCE_LOCATION (decl), OPT_Wpedantic,
         "ISO C++ did not adopt string literal operator templa"
         "tes taking an argument pack of characters");

This one is different. There's not really a space missing, but proper line
breaking. Breaking the line in the middle of a word is really ugly.

From parser.h:

  } GTY((desc ("(%1.type == CPP_TEMPLATE_ID)"
               "|| (%1.type == CPP_NESTED_NAME_SPECIFIER)"
               "|| (%1.type == CPP_DECLTYPE)"))) u;

If there's a space after the || operator, there should be one before the
operator, too.

From tree.c:

w = warning_at (loc, OPT_Wabi, "%<-fabi-version=12%> (GCC 8.1) accident"
                "ally changes the calling convention for %qT", t);

Nothing missing again, only the line breaking is ugly, as pointed out above.

----

I found all the above issues by manually inspecting the output of the attached
linter. That linter could be placed in the contrib/ folder.


More information about the Gcc-bugs mailing list