PR c/46745
* c-pretty-print.c (pp_c_postfix_expression): Handle MEM_REF.
(pp_c_unary_expression): Likewise.
(pp_c_expression): Likewise.
cp/
* error.c (dump_expr): Handle MEM_REF.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@167433
138bc75d-0d04-0410-961f-
82ee72b054a4
+2010-12-03 Richard Guenther <rguenther@suse.de>
+
+ PR c/46745
+ * c-pretty-print.c (pp_c_postfix_expression): Handle MEM_REF.
+ (pp_c_unary_expression): Likewise.
+ (pp_c_expression): Likewise.
+
2010-11-30 Nicola Pero <nicola.pero@meta-innovation.com>
* c-common.h (objc_finish_function): New.
}
break;
+ case MEM_REF:
+ pp_c_expression (pp, e);
+ break;
+
case COMPLEX_CST:
case VECTOR_CST:
pp_c_compound_literal (pp, e);
pp_c_cast_expression (pp, TREE_OPERAND (e, 0));
break;
+ case MEM_REF:
+ if (TREE_CODE (TREE_OPERAND (e, 0)) == ADDR_EXPR
+ && integer_zerop (TREE_OPERAND (e, 1)))
+ pp_c_expression (pp, TREE_OPERAND (TREE_OPERAND (e, 0), 0));
+ else
+ {
+ pp_c_star (pp);
+ if (!integer_zerop (TREE_OPERAND (e, 1)))
+ {
+ pp_c_left_paren (pp);
+ if (!integer_onep (TYPE_SIZE_UNIT
+ (TREE_TYPE (TREE_TYPE (TREE_OPERAND (e, 0))))))
+ pp_c_type_cast (pp, ptr_type_node);
+ }
+ pp_c_cast_expression (pp, TREE_OPERAND (e, 0));
+ if (!integer_zerop (TREE_OPERAND (e, 1)))
+ {
+ pp_plus (pp);
+ pp_c_integer_constant (pp,
+ fold_convert (ssizetype,
+ TREE_OPERAND (e, 1)));
+ pp_c_right_paren (pp);
+ }
+ }
+ break;
+
case REALPART_EXPR:
case IMAGPART_EXPR:
pp_c_ws_string (pp, code == REALPART_EXPR ? "__real__" : "__imag__");
case CONJ_EXPR:
case ADDR_EXPR:
case INDIRECT_REF:
+ case MEM_REF:
case NEGATE_EXPR:
case BIT_NOT_EXPR:
case TRUTH_NOT_EXPR:
+2010-12-03 Richard Guenther <rguenther@suse.de>
+
+ PR c/46745
+ * error.c (dump_expr): Handle MEM_REF.
+
2010-12-03 Laurynas Biveinis <laurynas.biveinis@gmail.com>
* cp-tree.h (struct aggr_init_expr_arg_iterator_d): Remove GTY
}
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: