diff options
author | Jason Merrill <jason@redhat.com> | 2010-05-13 16:53:38 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2010-05-13 16:53:38 -0400 |
commit | 3a11c6659187eb67fd9f2a28fc5e1dbda1e555a8 (patch) | |
tree | 205bfc38b3172fb070a52733bb7e123d7b9671e1 /gcc | |
parent | a2e66caf57a55c157600620d0f258115f5c9788b (diff) | |
download | gcc-3a11c6659187eb67fd9f2a28fc5e1dbda1e555a8.zip gcc-3a11c6659187eb67fd9f2a28fc5e1dbda1e555a8.tar.gz gcc-3a11c6659187eb67fd9f2a28fc5e1dbda1e555a8.tar.bz2 |
typeck.c (cp_build_array_ref): Factor out from...
* typeck.c (cp_build_array_ref): Factor out from...
(build_array_ref): ...here. Drop complain parm.
(build_new_op): Adjust.
* class.c (build_vtbl_ref_1): Adjust.
* decl2.c (grok_array_decl): Adjust.
* cp-tree.h: Adjust prototypes.
From-SVN: r159377
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/cp/call.c | 2 | ||||
-rw-r--r-- | gcc/cp/class.c | 2 | ||||
-rw-r--r-- | gcc/cp/cp-tree.h | 3 | ||||
-rw-r--r-- | gcc/cp/decl2.c | 3 | ||||
-rw-r--r-- | gcc/cp/typeck.c | 22 |
6 files changed, 30 insertions, 11 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 39766ac..cd8dfd2 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,12 @@ +2010-05-13 Jason Merrill <jason@redhat.com> + + * typeck.c (cp_build_array_ref): Factor out from... + (build_array_ref): ...here. Drop complain parm. + (build_new_op): Adjust. + * class.c (build_vtbl_ref_1): Adjust. + * decl2.c (grok_array_decl): Adjust. + * cp-tree.h: Adjust prototypes. + 2010-05-13 Jan Hubicka <jh@suse.cz> * decl.c (cp_finish_decl): Do not worry about used attribute. diff --git a/gcc/cp/call.c b/gcc/cp/call.c index 5f8aeea..6ed53dc 100644 --- a/gcc/cp/call.c +++ b/gcc/cp/call.c @@ -4517,7 +4517,7 @@ build_new_op (enum tree_code code, int flags, tree arg1, tree arg2, tree arg3, return cp_build_unary_op (code, arg1, candidates != 0, complain); case ARRAY_REF: - return build_array_ref (input_location, arg1, arg2, complain); + return cp_build_array_ref (input_location, arg1, arg2, complain); case MEMBER_REF: return build_m_component_ref (cp_build_indirect_ref (arg1, RO_NULL, diff --git a/gcc/cp/class.c b/gcc/cp/class.c index e22ef07..88db80f 100644 --- a/gcc/cp/class.c +++ b/gcc/cp/class.c @@ -629,7 +629,7 @@ build_vtbl_ref_1 (tree instance, tree idx) if (!vtbl) vtbl = build_vfield_ref (instance, basetype); - aref = build_array_ref (input_location, vtbl, idx, tf_warning_or_error); + aref = build_array_ref (input_location, vtbl, idx); TREE_CONSTANT (aref) |= TREE_CONSTANT (vtbl) && TREE_CONSTANT (idx); return aref; diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h index a9dc616..3b8e9d0 100644 --- a/gcc/cp/cp-tree.h +++ b/gcc/cp/cp-tree.h @@ -5365,7 +5365,8 @@ extern tree build_x_indirect_ref (tree, ref_operator, tsubst_flags_t); extern tree cp_build_indirect_ref (tree, ref_operator, tsubst_flags_t); -extern tree build_array_ref (location_t, tree, tree, +extern tree build_array_ref (location_t, tree, tree); +extern tree cp_build_array_ref (location_t, tree, tree, tsubst_flags_t); extern tree get_member_function_from_ptrfunc (tree *, tree); extern tree cp_build_function_call (tree, tree, tsubst_flags_t); diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c index ae7c2ab..d811c9e 100644 --- a/gcc/cp/decl2.c +++ b/gcc/cp/decl2.c @@ -399,8 +399,7 @@ grok_array_decl (tree array_expr, tree index_exp) if (array_expr == error_mark_node || index_exp == error_mark_node) error ("ambiguous conversion for array subscript"); - expr = build_array_ref (input_location, array_expr, index_exp, - tf_warning_or_error); + expr = build_array_ref (input_location, array_expr, index_exp); } if (processing_template_decl && expr != error_mark_node) return build_min_non_dep (ARRAY_REF, expr, orig_array_expr, orig_index_exp, diff --git a/gcc/cp/typeck.c b/gcc/cp/typeck.c index 91aaafe..dfdd592 100644 --- a/gcc/cp/typeck.c +++ b/gcc/cp/typeck.c @@ -2860,8 +2860,8 @@ cp_build_indirect_ref (tree ptr, ref_operator errorstring, LOC is the location to use in building the array reference. */ tree -build_array_ref (location_t loc, tree array, tree idx, - tsubst_flags_t complain) +cp_build_array_ref (location_t loc, tree array, tree idx, + tsubst_flags_t complain) { tree ret; @@ -2882,8 +2882,8 @@ build_array_ref (location_t loc, tree array, tree idx, { case COMPOUND_EXPR: { - tree value = build_array_ref (loc, TREE_OPERAND (array, 1), idx, - complain); + tree value = cp_build_array_ref (loc, TREE_OPERAND (array, 1), idx, + complain); ret = build2 (COMPOUND_EXPR, TREE_TYPE (value), TREE_OPERAND (array, 0), value); SET_EXPR_LOCATION (ret, loc); @@ -2893,8 +2893,10 @@ build_array_ref (location_t loc, tree array, tree idx, case COND_EXPR: ret = build_conditional_expr (TREE_OPERAND (array, 0), - build_array_ref (loc, TREE_OPERAND (array, 1), idx, complain), - build_array_ref (loc, TREE_OPERAND (array, 2), idx, complain), + cp_build_array_ref (loc, TREE_OPERAND (array, 1), idx, + complain), + cp_build_array_ref (loc, TREE_OPERAND (array, 2), idx, + complain), tf_warning_or_error); protected_set_expr_location (ret, loc); return ret; @@ -3020,6 +3022,14 @@ build_array_ref (location_t loc, tree array, tree idx, return ret; } } + +/* Entry point for Obj-C++. */ + +tree +build_array_ref (location_t loc, tree array, tree idx) +{ + return cp_build_array_ref (loc, array, idx, tf_warning_or_error); +} /* Resolve a pointer to member function. INSTANCE is the object instance to use, if the member points to a virtual member. |