dumpfile.c: fix stray dump_loc output (PR tree-optimization/87309)
authorDavid Malcolm <dmalcolm@redhat.com>
Fri, 21 Sep 2018 14:17:07 +0000 (14:17 +0000)
committerDavid Malcolm <dmalcolm@gcc.gnu.org>
Fri, 21 Sep 2018 14:17:07 +0000 (14:17 +0000)
commitc8d1534ec95645e5f2fc4d6374a36517ea996f98
tree682109c0499e9a05bfc0d1b6f5b7ab53c634e5a2
parent52e18cdfd21c3a9868ee685f26ba95836945a928
dumpfile.c: fix stray dump_loc output (PR tree-optimization/87309)

In r262891 I reimplemented this call:
  dump_printf_loc (MSG_NOTE, loc, "=== %s ===\n", name);
in dump_begin_scope to use direct calls to dump_loc:
  if (dump_file)
    {
      dump_loc (MSG_NOTE, dump_file, loc.get_location_t ());
      fprintf (dump_file, "=== %s ===\n", name);
    }

  if (alt_dump_file)
   {
     dump_loc (MSG_NOTE, alt_dump_file, loc.get_location_t ());
     fprintf (alt_dump_file, "=== %s ===\n", name);
   }

However ::dump_loc doesn't filter with pflags and alt_flags.

This lead to stray output of the form:
  test.cpp:1:6: note: test.cpp:1:11: note:
when using -fopt-info with "optimized" or "missed".

This patch adds this missing filtering, eliminating the stray partial
note output.

gcc/ChangeLog:
PR tree-optimization/87309
* dumpfile.c (dump_context::begin_scope): Filter the dump_loc
calls with pflags and alt_flags.
(selftest::test_capture_of_dump_calls): Add test of interaction of
MSG_OPTIMIZED_LOCATIONS with AUTO_DUMP_SCOPE.

gcc/testsuite/ChangeLog:
PR tree-optimization/87309
* gcc.dg/pr87309.c: New test.

From-SVN: r264481
gcc/ChangeLog
gcc/dumpfile.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/pr87309.c [new file with mode: 0644]