diff options
author | Shujing Zhao <pearly.zhao@oracle.com> | 2009-12-17 03:22:22 +0000 |
---|---|---|
committer | Shujing Zhao <pzhao@gcc.gnu.org> | 2009-12-17 03:22:22 +0000 |
commit | dd865ef6e85afae532e83f05cf3126a23cb81ba5 (patch) | |
tree | 27ca1fe8f71a3b516fc9e49ec49456f83326e58c /gcc/cp/class.c | |
parent | 3d34d0a029039f01426edee77b5bad8815304c2a (diff) | |
download | gcc-dd865ef6e85afae532e83f05cf3126a23cb81ba5.zip gcc-dd865ef6e85afae532e83f05cf3126a23cb81ba5.tar.gz gcc-dd865ef6e85afae532e83f05cf3126a23cb81ba5.tar.bz2 |
re PR c/40885 (build_indirect_ref i18n problems)
2009-12-17 Shujing Zhao <pearly.zhao@oracle.com>
PR c/40885
* c-common.h (ref_operator): New type.
(build_indirect_ref): Adjust prototype with new argument.
* c-typeck.c (build_indirect_ref): Accept ref_operator as argument and
emit the diagnostics for easy translation.
(build_array_ref): Update calls to build_indirect_ref.
* c-omp.c (c_finish_omp_atomic): Likewise.
* c-parser.c (c_parser_unary_expression,
c_parser_postfix_expression_after_primary): Likewise.
cp/
2009-12-17 Shujing Zhao <pearly.zhao@oracle.com>
* typeck.c (build_indirect_ref): Update the argument.
(build_x_indirect_ref): Likewise.
(cp_build_indirect_ref): Update the argument and emit the diagnostics
for easy translation.
(build_class_member_access_expr, build_array_ref,
get_member_function_from_ptrfunc): Update calls.
* cp-tree.h (build_x_indirect_ref, cp_build_indirect_ref): Update
prototypes.
* call.c (build_new_op, convert_like_real, build_x_va_arg,
build_over_call): Update calls.
* class.c (build_base_path, build_simple_base_path, build_vfn_ref):
Likewise.
* decl.c (start_preparsed_function): Likewise.
* except.c (expand_start_catch_block, build_throw): Likewise.
* init.c (emit_mem_initializers, expand_virtual_init,
expand_virtual_init, build_new_1, build_vec_init, build_delete,
build_vec_delete): Likewise.
* parser.c (cp_parser_unary_expression): Likewise.
* pt.c (tsubst_copy_and_build): Likewise.
* rtti.c (build_headof, get_tinfo_decl_dynamic, get_typeid): Likewise.
* semantics.c (finish_non_static_data_member, thisify_lambda_field):
Likewise.
* tree.c (build_dummy_object, stabilize_expr): Likewise.
* typeck2.c (build_x_arrow): Likewise.
testsuite/
2009-12-17 Shujing Zhao <pearly.zhao@oracle.com>
* g++.old-deja/g++.mike/net31.C: Make expected dg-error strings
explicit.
* g++.old-deja/g++.bugs/900213_02.C: Likewise.
* g++.old-deja/g++.bugs/900215_02.C: Likewise.
From-SVN: r155302
Diffstat (limited to 'gcc/cp/class.c')
-rw-r--r-- | gcc/cp/class.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/gcc/cp/class.c b/gcc/cp/class.c index fff4380..16d5666 100644 --- a/gcc/cp/class.c +++ b/gcc/cp/class.c @@ -297,7 +297,7 @@ build_base_path (enum tree_code code, { expr = build_nop (build_pointer_type (target_type), expr); if (!want_pointer) - expr = build_indirect_ref (EXPR_LOCATION (expr), expr, NULL); + expr = build_indirect_ref (EXPR_LOCATION (expr), expr, RO_NULL); return expr; } @@ -343,7 +343,7 @@ build_base_path (enum tree_code code, interesting to the optimizers anyway. */ && !has_empty) { - expr = cp_build_indirect_ref (expr, NULL, tf_warning_or_error); + expr = cp_build_indirect_ref (expr, RO_NULL, tf_warning_or_error); expr = build_simple_base_path (expr, binfo); if (want_pointer) expr = build_address (expr); @@ -368,11 +368,11 @@ build_base_path (enum tree_code code, t = TREE_TYPE (TYPE_VFIELD (current_class_type)); t = build_pointer_type (t); v_offset = convert (t, current_vtt_parm); - v_offset = cp_build_indirect_ref (v_offset, NULL, + v_offset = cp_build_indirect_ref (v_offset, RO_NULL, tf_warning_or_error); } else - v_offset = build_vfield_ref (cp_build_indirect_ref (expr, NULL, + v_offset = build_vfield_ref (cp_build_indirect_ref (expr, RO_NULL, tf_warning_or_error), TREE_TYPE (TREE_TYPE (expr))); @@ -381,7 +381,7 @@ build_base_path (enum tree_code code, v_offset = build1 (NOP_EXPR, build_pointer_type (ptrdiff_type_node), v_offset); - v_offset = cp_build_indirect_ref (v_offset, NULL, tf_warning_or_error); + v_offset = cp_build_indirect_ref (v_offset, RO_NULL, tf_warning_or_error); TREE_CONSTANT (v_offset) = 1; offset = convert_to_integer (ptrdiff_type_node, @@ -424,7 +424,7 @@ build_base_path (enum tree_code code, null_test = NULL; if (!want_pointer) - expr = cp_build_indirect_ref (expr, NULL, tf_warning_or_error); + expr = cp_build_indirect_ref (expr, RO_NULL, tf_warning_or_error); out: if (null_test) @@ -458,7 +458,7 @@ build_simple_base_path (tree expr, tree binfo) in the back end. */ temp = unary_complex_lvalue (ADDR_EXPR, expr); if (temp) - expr = cp_build_indirect_ref (temp, NULL, tf_warning_or_error); + expr = cp_build_indirect_ref (temp, RO_NULL, tf_warning_or_error); return expr; } @@ -646,7 +646,7 @@ build_vfn_ref (tree instance_ptr, tree idx) { tree aref; - aref = build_vtbl_ref_1 (cp_build_indirect_ref (instance_ptr, 0, + aref = build_vtbl_ref_1 (cp_build_indirect_ref (instance_ptr, RO_NULL, tf_warning_or_error), idx); |