diff --git a/gcc/analyzer/svalue.cc b/gcc/analyzer/svalue.cc
index fe22ae73ddd..1c0041ab75b 100644
--- a/gcc/analyzer/svalue.cc
+++ b/gcc/analyzer/svalue.cc
@@ -227,6 +227,14 @@ svalue::make_dump_widget (const text_art::dump_widget_info &dwi,
 
   print_dump_widget_label (&pp);
 
+  value_range out;
+  if (maybe_get_value_range (out))
+    {
+      pp_printf (&pp, " value range: {"),
+	out.print (&pp);
+      pp_string (&pp, "}");
+    }
+
   std::unique_ptr<text_art::tree_widget> w
     (text_art::tree_widget::make (dwi, &pp));
 
diff --git a/gcc/value-range.cc b/gcc/value-range.cc
index 657afa0acaa..a1e5c805057 100644
--- a/gcc/value-range.cc
+++ b/gcc/value-range.cc
@@ -157,6 +157,18 @@ value_range::dump (FILE *out) const
     fprintf (out, "NULL");
 }
 
+void
+value_range::print (pretty_printer *pp) const
+{
+  if (m_vrange)
+    {
+      vrange_printer vrange_pp (pp);
+      m_vrange->accept (vrange_pp);
+    }
+  else
+    pp_string (pp, "NULL");
+}
+
 DEBUG_FUNCTION void
 debug (const value_range &r)
 {
diff --git a/gcc/value-range.h b/gcc/value-range.h
index eaf29236d99..85deebab092 100644
--- a/gcc/value-range.h
+++ b/gcc/value-range.h
@@ -792,6 +792,7 @@ public:
   operator vrange &();
   operator const vrange &() const;
   void dump (FILE *) const;
+  void print (pretty_printer *) const;
   static bool supports_type_p (const_tree type);
 
   tree type () { return m_vrange->type (); }
