aboutsummaryrefslogtreecommitdiff
path: root/gcc/c-common.c
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/c-common.c
parent3e1e5626dc66aa2bf4a2529b4aa842741d726340 (diff)
downloadgcc-6a3799eb0065d62b04315aa2a9808bce71dab54b.zip
gcc-6a3799eb0065d62b04315aa2a9808bce71dab54b.tar.gz
gcc-6a3799eb0065d62b04315aa2a9808bce71dab54b.tar.bz2
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/c-common.c')
-rw-r--r--gcc/c-common.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/c-common.c b/gcc/c-common.c
index 748ab52..8c9e48c 100644
--- a/gcc/c-common.c
+++ b/gcc/c-common.c
@@ -5003,10 +5003,12 @@ c_do_switch_warnings (splay_tree cases, location_t switch_location,
}
/* Finish an expression taking the address of LABEL (an
- IDENTIFIER_NODE). Returns an expression for the address. */
+ IDENTIFIER_NODE). Returns an expression for the address.
+
+ LOC is the location for the expression returned. */
tree
-finish_label_address_expr (tree label)
+finish_label_address_expr (tree label, location_t loc)
{
tree result;
@@ -5025,6 +5027,7 @@ finish_label_address_expr (tree label)
/* The current function in not necessarily uninlinable.
Computed gotos are incompatible with inlining, but the value
here could be used only in a diagnostic, for example. */
+ protected_set_expr_location (result, loc);
}
return result;