From dda49785be1bd34c9f4958f5df686eab2c7264b0 Mon Sep 17 00:00:00 2001 From: aldyh Date: Mon, 1 Sep 2008 15:02:27 +0000 Subject: * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@139867 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/c-common.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'gcc/c-common.c') diff --git a/gcc/c-common.c b/gcc/c-common.c index 748ab52e1c4..8c9e48cbe97 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; -- cgit v1.2.1