summaryrefslogtreecommitdiff
path: root/gcc/objc
diff options
context:
space:
mode:
authorAldy Hernandez <aldyh@redhat.com>2008-09-01 15:02:27 +0000
committerAldy Hernandez <aldyh@gcc.gnu.org>2008-09-01 15:02:27 +0000
commit6a3799eb0065d62b04315aa2a9808bce71dab54b (patch)
tree57a9ce83f96df241f121be8ab48c43f79b30bd47 /gcc/objc
parent3e1e5626dc66aa2bf4a2529b4aa842741d726340 (diff)
downloadgcc-6a3799eb0065d62b04315aa2a9808bce71dab54b.tar.gz
tree.c (protected_set_expr_location): New.
* tree.c (protected_set_expr_location): New. * tree.h (protected_set_expr_location): New prototype. * c-tree.h (build_array_ref): Add argument. (parser_build_unary_op): Same. * c-typeck.c (build_indirect_ref): Handle new location argument. (build_array_ref): Same. (parser_build_unary_op): Same. * gimplify.c (gimplify_asm_expr): Set input_location before calling error. * c-omp.c (c_finish_omp_atomic): Pass location when calling build_indirect_ref. * c-common.c (finish_label_address_expr): Handle new location argument. * c-common.h (build_indirect_ref): Add argument. (finish_label_address_expr): Same. * c-parser.c (c_parser_unary_expression): Pass location to build functions. (c_parser_postfix_expression): Same. objc/ * objc-act.c (build_typed_selector_reference): Pass input_location to build_unary_op calls. (build_selector_reference): Same, but to build_array_ref. (objc_substitute_decl): Same. (build_ivar_reference): Same, but to build_indirect_ref. (get_super_receiver): Same. testsuite/ * gcc.dg/20010516-1.c: Test for columns. cp/ * typeck.c (build_x_indirect_ref): Add location argument. * class.c (build_base_path): Pass location to build_indirect_ref. * pt.c (tsubst_copy_and_build): Pass location to finish_label_address_expr. * parser.c (cp_parser_unary_expression): Same. From-SVN: r139867
Diffstat (limited to 'gcc/objc')
-rw-r--r--gcc/objc/ChangeLog9
-rw-r--r--gcc/objc/objc-act.c20
2 files changed, 22 insertions, 7 deletions
diff --git a/gcc/objc/ChangeLog b/gcc/objc/ChangeLog
index 8fa3d3d4df1..8eea3dbfd67 100644
--- a/gcc/objc/ChangeLog
+++ b/gcc/objc/ChangeLog
@@ -1,3 +1,12 @@
+2008-09-01 Aldy Hernandez <aldyh@redhat.com>
+
+ * objc-act.c (build_typed_selector_reference): Pass input_location to
+ build_unary_op calls.
+ (build_selector_reference): Same, but to build_array_ref.
+ (objc_substitute_decl): Same.
+ (build_ivar_reference): Same, but to build_indirect_ref.
+ (get_super_receiver): Same.
+
2008-07-28 Richard Guenther <rguenther@suse.de>
Merge from gimple-tuples-branch.
diff --git a/gcc/objc/objc-act.c b/gcc/objc/objc-act.c
index 5941fb69389..8f9571942c2 100644
--- a/gcc/objc/objc-act.c
+++ b/gcc/objc/objc-act.c
@@ -2630,7 +2630,8 @@ build_typed_selector_reference (tree ident, tree prototype)
return_at_index:
expr = build_unary_op (ADDR_EXPR,
build_array_ref (UOBJC_SELECTOR_TABLE_decl,
- build_int_cst (NULL_TREE, index)),
+ build_int_cst (NULL_TREE, index),
+ input_location),
1);
return convert (objc_selector_type, expr);
}
@@ -2648,7 +2649,8 @@ build_selector_reference (tree ident)
return (flag_next_runtime
? TREE_PURPOSE (*chain)
: build_array_ref (UOBJC_SELECTOR_TABLE_decl,
- build_int_cst (NULL_TREE, index)));
+ build_int_cst (NULL_TREE, index),
+ input_location));
index++;
chain = &TREE_CHAIN (*chain);
@@ -2661,7 +2663,8 @@ build_selector_reference (tree ident)
return (flag_next_runtime
? expr
: build_array_ref (UOBJC_SELECTOR_TABLE_decl,
- build_int_cst (NULL_TREE, index)));
+ build_int_cst (NULL_TREE, index),
+ input_location));
}
static GTY(()) int class_reference_idx;
@@ -3046,11 +3049,13 @@ objc_substitute_decl (tree expr, tree oldexpr, tree newexpr)
return build_array_ref (objc_substitute_decl (TREE_OPERAND (expr, 0),
oldexpr,
newexpr),
- TREE_OPERAND (expr, 1));
+ TREE_OPERAND (expr, 1),
+ input_location);
case INDIRECT_REF:
return build_indirect_ref (objc_substitute_decl (TREE_OPERAND (expr, 0),
oldexpr,
- newexpr), "->");
+ newexpr), "->",
+ input_location);
default:
return expr;
}
@@ -6713,7 +6718,8 @@ build_ivar_reference (tree id)
self_decl = convert (objc_instance_type, self_decl); /* cast */
}
- return objc_build_component_ref (build_indirect_ref (self_decl, "->"), id);
+ return objc_build_component_ref (build_indirect_ref (self_decl, "->",
+ input_location), id);
}
/* Compute a hash value for a given method SEL_NAME. */
@@ -8737,7 +8743,7 @@ get_super_receiver (void)
super_class
= build_indirect_ref
(build_c_cast (build_pointer_type (objc_class_type),
- super_class), "unary *");
+ super_class), "unary *", input_location);
}
else
{