aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Malcolm <dmalcolm@redhat.com>2018-09-21 14:17:07 +0000
committerDavid Malcolm <dmalcolm@gcc.gnu.org>2018-09-21 14:17:07 +0000
commitc8d1534ec95645e5f2fc4d6374a36517ea996f98 (patch)
tree682109c0499e9a05bfc0d1b6f5b7ab53c634e5a2
parent52e18cdfd21c3a9868ee685f26ba95836945a928 (diff)
downloadgcc-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/ChangeLog8
-rw-r--r--gcc/dumpfile.c29
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/pr87309.c4
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" } */