diff options
author | David Malcolm <dmalcolm@redhat.com> | 2018-09-21 14:17:07 +0000 |
---|---|---|
committer | David Malcolm <dmalcolm@gcc.gnu.org> | 2018-09-21 14:17:07 +0000 |
commit | c8d1534ec95645e5f2fc4d6374a36517ea996f98 (patch) | |
tree | 682109c0499e9a05bfc0d1b6f5b7ab53c634e5a2 | |
parent | 52e18cdfd21c3a9868ee685f26ba95836945a928 (diff) | |
download | gcc-c8d1534ec95645e5f2fc4d6374a36517ea996f98.zip gcc-c8d1534ec95645e5f2fc4d6374a36517ea996f98.tar.gz gcc-c8d1534ec95645e5f2fc4d6374a36517ea996f98.tar.bz2 |
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
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/dumpfile.c | 29 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr87309.c | 4 |
4 files changed, 43 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e9b8e96..667ecca 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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. diff --git a/gcc/dumpfile.c b/gcc/dumpfile.c index a81ab3e..5655e46 100644 --- a/gcc/dumpfile.c +++ b/gcc/dumpfile.c @@ -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. */ diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 6f338c2..b861eab 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -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. 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" } */ |