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
This commit is contained in:
parent
52e18cdfd2
commit
c8d1534ec9
4 changed files with 43 additions and 3 deletions
|
@ -1,3 +1,11 @@
|
|||
2018-09-21 David Malcolm <dmalcolm@redhat.com>
|
||||
|
||||
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.
|
||||
|
||||
2018-09-21 Olivier Hainque <hainque@adacore.com>
|
||||
|
||||
* config.gcc: Factorize and comment inclusion of vxworks-dummy.h.
|
||||
|
|
|
@ -1048,14 +1048,14 @@ 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. */
|
||||
if (m_test_pp)
|
||||
if (m_test_pp && (MSG_NOTE & m_test_pp_flags))
|
||||
::dump_loc (MSG_NOTE, m_test_pp, loc.get_location_t ());
|
||||
|
||||
pretty_printer pp;
|
||||
|
@ -2304,6 +2304,29 @@ test_capture_of_dump_calls (const line_table_case &case_)
|
|||
OPTINFO_KIND_FAILURE);
|
||||
}
|
||||
}
|
||||
|
||||
/* Verify that MSG_* affect AUTO_DUMP_SCOPE and the dump calls. */
|
||||
{
|
||||
temp_dump_context tmp (false, MSG_OPTIMIZED_LOCATIONS);
|
||||
dump_printf_loc (MSG_NOTE, stmt, "msg 1\n");
|
||||
{
|
||||
AUTO_DUMP_SCOPE ("outer scope", stmt);
|
||||
dump_printf_loc (MSG_NOTE, stmt, "msg 2\n");
|
||||
{
|
||||
AUTO_DUMP_SCOPE ("middle scope", stmt);
|
||||
dump_printf_loc (MSG_NOTE, stmt, "msg 3\n");
|
||||
{
|
||||
AUTO_DUMP_SCOPE ("inner scope", stmt);
|
||||
dump_printf_loc (MSG_OPTIMIZED_LOCATIONS, stmt, "msg 4\n");
|
||||
}
|
||||
dump_printf_loc (MSG_NOTE, stmt, "msg 5\n");
|
||||
}
|
||||
dump_printf_loc (MSG_NOTE, stmt, "msg 6\n");
|
||||
}
|
||||
dump_printf_loc (MSG_NOTE, stmt, "msg 7\n");
|
||||
|
||||
ASSERT_DUMPED_TEXT_EQ (tmp, "test.txt:5:10: note: msg 4\n");
|
||||
}
|
||||
}
|
||||
|
||||
/* Run all of the selftests within this file. */
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2018-09-21 David Malcolm <dmalcolm@redhat.com>
|
||||
|
||||
PR tree-optimization/87309
|
||||
* gcc.dg/pr87309.c: New test.
|
||||
|
||||
2018-09-21 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* c-c++-common/dump-ada-spec-14.c: New test.
|
||||
|
|
4
gcc/testsuite/gcc.dg/pr87309.c
Normal file
4
gcc/testsuite/gcc.dg/pr87309.c
Normal file
|
@ -0,0 +1,4 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-fopt-info-vec-optimized -O3" } */
|
||||
|
||||
void a() {} /* { dg-bogus "note" } */
|
Loading…
Add table
Reference in a new issue