diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 2c98a7103d1292f936572386577f077bc0b16890..305565fa350237551f7def4e58cb38b20d5482a2 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,7 @@
+2014-11-20  Jason Merrill  <jason@redhat.com>
+
+	* error.c (dump_expr): Avoid printing (*&i) for references.
+
 2014-11-20  Ville Voutilainen  <ville.voutilainen@gmail.com>
 
 	PR c++/63959
diff --git a/gcc/cp/error.c b/gcc/cp/error.c
index 76f86cb0d74bc43d3e2b842ec1a170b0eb939eb0..7d79771ec267fcf948bc7d289da38124ce5cdae4 100644
--- a/gcc/cp/error.c
+++ b/gcc/cp/error.c
@@ -2299,7 +2299,13 @@ dump_expr (cxx_pretty_printer *pp, tree t, int flags)
 			    TREE_TYPE (ttype)))
 	  {
 	    if (TREE_CODE (ttype) == REFERENCE_TYPE)
-	      dump_unary_op (pp, "*", t, flags);
+	      {
+		STRIP_NOPS (op);
+		if (TREE_CODE (op) == ADDR_EXPR)
+		  dump_expr (pp, TREE_OPERAND (op, 0), flags);
+		else
+		  dump_unary_op (pp, "*", t, flags);
+	      }
 	    else
 	      dump_unary_op (pp, "&", t, flags);
 	  }