public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [committed] Reinstate dump_generic_expr_loc
@ 2018-07-02  3:43 David Malcolm
  0 siblings, 0 replies; only message in thread
From: David Malcolm @ 2018-07-02  3:43 UTC (permalink / raw)
  To: gcc-patches; +Cc: Richard Sandiford, David Malcolm

In r262149 ("Introduce dump_location_t", aka
c309657f69df19eaa590b6650acf4d3bea9ac9e6), I removed dump_generic_expr_loc
from dumpfile.h/c as it was unused in the source tree.

It looks like this was overzealous of me, as Richard wants to use it in
  "Re: [14/n] PR85694: Rework overwidening detection"
    https://gcc.gnu.org/ml/gcc-patches/2018-06/msg01872.html
(which also reinstates the function, porting it to dump_location_t).

Sorry about the breakage.

This is a minimal patch to reinstate it, as I have followup patches to
dumpfile.c which need to touch it (and the other dump_* functions),
towards being able to save optimization records to a file.

I believe it's a subset of Richard's patch above.

Successfully bootstrapped & regrtested on x86_64-pc-linux-gnu.

Committed to trunk as r262295 under the "obvious" rule.

gcc/ChangeLog:
	* dumpfile.c (dump_generic_expr_loc): Undo removal of this
	function in r262149, changing "loc" param from source_location to
	const dump_location_t &.
	* dumpfile.h (dump_generic_expr_loc): Undo removal of this
	declaration, as above.
---
 gcc/dumpfile.c | 22 ++++++++++++++++++++++
 gcc/dumpfile.h |  2 ++
 2 files changed, 24 insertions(+)

diff --git a/gcc/dumpfile.c b/gcc/dumpfile.c
index 93bc651..5f69f9b 100644
--- a/gcc/dumpfile.c
+++ b/gcc/dumpfile.c
@@ -506,6 +506,28 @@ dump_generic_expr (dump_flags_t dump_kind, dump_flags_t extra_dump_flags,
       print_generic_expr (alt_dump_file, t, dump_flags | extra_dump_flags);
 }
 
+
+/* Similar to dump_generic_expr, except additionally print the source
+   location.  */
+
+void
+dump_generic_expr_loc (dump_flags_t dump_kind, const dump_location_t &loc,
+		       dump_flags_t extra_dump_flags, tree t)
+{
+  location_t srcloc = loc.get_location_t ();
+  if (dump_file && (dump_kind & pflags))
+    {
+      dump_loc (dump_kind, dump_file, srcloc);
+      print_generic_expr (dump_file, t, dump_flags | extra_dump_flags);
+    }
+
+  if (alt_dump_file && (dump_kind & alt_flags))
+    {
+      dump_loc (dump_kind, alt_dump_file, srcloc);
+      print_generic_expr (alt_dump_file, t, dump_flags | extra_dump_flags);
+    }
+}
+
 /* Output a formatted message using FORMAT on appropriate dump streams.  */
 
 void
diff --git a/gcc/dumpfile.h b/gcc/dumpfile.h
index 9828a3f..0e588a6 100644
--- a/gcc/dumpfile.h
+++ b/gcc/dumpfile.h
@@ -425,6 +425,8 @@ extern void dump_printf_loc (dump_flags_t, const dump_location_t &,
 			     const char *, ...) ATTRIBUTE_PRINTF_3;
 extern void dump_function (int phase, tree fn);
 extern void dump_basic_block (dump_flags_t, basic_block, int);
+extern void dump_generic_expr_loc (dump_flags_t, const dump_location_t &,
+				   dump_flags_t, tree);
 extern void dump_generic_expr (dump_flags_t, dump_flags_t, tree);
 extern void dump_gimple_stmt_loc (dump_flags_t, const dump_location_t &,
 				  dump_flags_t, gimple *, int);
-- 
1.8.5.3

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2018-07-02  3:43 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-07-02  3:43 [committed] Reinstate dump_generic_expr_loc David Malcolm

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).