diff options
Diffstat (limited to 'gcc/cp/error.c')
-rw-r--r-- | gcc/cp/error.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/gcc/cp/error.c b/gcc/cp/error.c index 2676966..8dd196e 100644 --- a/gcc/cp/error.c +++ b/gcc/cp/error.c @@ -1928,6 +1928,34 @@ dump_expr (tree t, int flags) } break; + case MEM_REF: + if (TREE_CODE (TREE_OPERAND (t, 0)) == ADDR_EXPR + && integer_zerop (TREE_OPERAND (t, 1))) + dump_expr (TREE_OPERAND (TREE_OPERAND (t, 0), 0), flags); + else + { + pp_cxx_star (cxx_pp); + if (!integer_zerop (TREE_OPERAND (t, 1))) + { + pp_cxx_left_paren (cxx_pp); + if (!integer_onep (TYPE_SIZE_UNIT + (TREE_TYPE (TREE_TYPE (TREE_OPERAND (t, 0)))))) + { + pp_cxx_left_paren (cxx_pp); + dump_type (ptr_type_node, flags); + pp_cxx_right_paren (cxx_pp); + } + } + dump_expr (TREE_OPERAND (t, 0), flags); + if (!integer_zerop (TREE_OPERAND (t, 1))) + { + pp_cxx_ws_string (cxx_pp, "+"); + dump_expr (fold_convert (ssizetype, TREE_OPERAND (t, 1)), flags); + pp_cxx_right_paren (cxx_pp); + } + } + break; + case NEGATE_EXPR: case BIT_NOT_EXPR: case TRUTH_NOT_EXPR: |