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? 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