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

--- Comment #5 from David Malcolm <dmalcolm at gcc dot gnu.org> ---
Author: dmalcolm
Date: Fri Sep 21 14:17:07 2018
New Revision: 264481

URL: https://gcc.gnu.org/viewcvs?rev=264481&root=gcc&view=rev
Log:
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.


Added:
    trunk/gcc/testsuite/gcc.dg/pr87309.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/dumpfile.c
    trunk/gcc/testsuite/ChangeLog

Reply via email to