[PATCH] dumpfile.c: fix stray dump_loc output (PR tree-optimization/87309)

Richard Biener richard.guenther@gmail.com
Wed Sep 19 14:04:00 GMT 2018


On Wed, Sep 19, 2018 at 12:42 PM David Malcolm <dmalcolm@redhat.com> wrote:
>
> 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 caused 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.
>
> Successfully bootstrapped & regrtested on x86_64-pc-linux-gnu.
>
> OK for trunk?

OK

> gcc/ChangeLog:
>         PR tree-optimization/87309
>         * dumpfile.c (dump_context::begin_scope): Filter the dump_loc
>         calls with pflags and alt_flags.
>
> gcc/testsuite/ChangeLog:
>         PR tree-optimization/87309
>         * gcc.dg/pr87309.c: New test.
> ---
>  gcc/dumpfile.c                 | 4 ++--
>  gcc/testsuite/gcc.dg/pr87309.c | 4 ++++
>  2 files changed, 6 insertions(+), 2 deletions(-)
>  create mode 100644 gcc/testsuite/gcc.dg/pr87309.c
>
> diff --git a/gcc/dumpfile.c b/gcc/dumpfile.c
> index a81ab3e..7333ee3 100644
> --- a/gcc/dumpfile.c
> +++ b/gcc/dumpfile.c
> @@ -1048,10 +1048,10 @@ dump_context::get_scope_depth () const
>  void
>  dump_context::begin_scope (const char *name, const dump_location_t &loc)
>  {
> -  if (dump_file)
> +  if (dump_file && (MSG_NOTE & pflags))
>      ::dump_loc (MSG_NOTE, dump_file, loc.get_location_t ());
>
> -  if (alt_dump_file)
> +  if (alt_dump_file && (MSG_NOTE & alt_flags))
>      ::dump_loc (MSG_NOTE, alt_dump_file, loc.get_location_t ());
>
>    /* Support for temp_dump_context in selftests.  */
> diff --git a/gcc/testsuite/gcc.dg/pr87309.c b/gcc/testsuite/gcc.dg/pr87309.c
> new file mode 100644
> index 0000000..8bd5a44
> --- /dev/null
> +++ b/gcc/testsuite/gcc.dg/pr87309.c
> @@ -0,0 +1,4 @@
> +/* { dg-do compile } */
> +/* { dg-options "-fopt-info-vec-optimized -O3" } */
> +
> +void a() {} /* { dg-bogus "note" } */
> --
> 1.8.5.3
>



More information about the Gcc-patches mailing list