From 65edca84b3cc8bf79d1bf076047d21270e1cb470 Mon Sep 17 00:00:00 2001 From: aldyh Date: Sat, 13 Jun 2009 21:27:56 +0000 Subject: [PATCH] * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin): Change first argument type to location_t. * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Same. Do not set input_location. Use loc instead of input_location throughout. objcp/ * objcp-decl.h (start_struct): Add location argument. (finish_struct): Same. (finish_decl): New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@148461 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 8 ++++++++ gcc/config/rs6000/rs6000-c.c | 27 +++++++++++++-------------- gcc/config/rs6000/rs6000-protos.h | 2 +- gcc/objcp/ChangeLog | 6 ++++++ gcc/objcp/objcp-decl.h | 10 ++++++---- 5 files changed, 34 insertions(+), 19 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index cc32b118b5d..0fe65b23ea3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2009-06-13 Aldy Hernandez + + * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin): + Change first argument type to location_t. + * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Same. + Do not set input_location. + Use loc instead of input_location throughout. + 2009-06-13 Richard Guenther PR tree-optimization/40389 diff --git a/gcc/config/rs6000/rs6000-c.c b/gcc/config/rs6000/rs6000-c.c index cd5c4708a3a..8a39b9e9f84 100644 --- a/gcc/config/rs6000/rs6000-c.c +++ b/gcc/config/rs6000/rs6000-c.c @@ -3001,10 +3001,9 @@ altivec_build_resolved_builtin (tree *args, int n, support Altivec's overloaded builtins. */ tree -altivec_resolve_overloaded_builtin (unsigned int loc, tree fndecl, +altivec_resolve_overloaded_builtin (location_t loc, tree fndecl, void *passed_arglist) { - location_t input_location = (location_t) loc; VEC(tree,gc) *arglist = (VEC(tree,gc) *) passed_arglist; unsigned int nargs = VEC_length (tree, arglist); unsigned int fcode = DECL_FUNCTION_CODE (fndecl); @@ -3115,11 +3114,11 @@ altivec_resolve_overloaded_builtin (unsigned int loc, tree fndecl, goto bad; /* Build *(((arg1_inner_type*)&(vector type){arg1})+arg2). */ arg1_inner_type = TREE_TYPE (arg1_type); - arg2 = build_binary_op (input_location, BIT_AND_EXPR, arg2, + arg2 = build_binary_op (loc, BIT_AND_EXPR, arg2, build_int_cst (TREE_TYPE (arg2), TYPE_VECTOR_SUBPARTS (arg1_type) - 1), 0); - decl = build_decl (input_location, VAR_DECL, NULL_TREE, arg1_type); + decl = build_decl (loc, VAR_DECL, NULL_TREE, arg1_type); DECL_EXTERNAL (decl) = 0; TREE_PUBLIC (decl) = 0; DECL_CONTEXT (decl) = current_function_decl; @@ -3129,15 +3128,15 @@ altivec_resolve_overloaded_builtin (unsigned int loc, tree fndecl, DECL_INITIAL (decl) = arg1; stmt = build1 (DECL_EXPR, arg1_type, decl); TREE_ADDRESSABLE (decl) = 1; - SET_EXPR_LOCATION (stmt, input_location); + SET_EXPR_LOCATION (stmt, loc); stmt = build1 (COMPOUND_LITERAL_EXPR, arg1_type, stmt); innerptrtype = build_pointer_type (arg1_inner_type); - stmt = build_unary_op (input_location, ADDR_EXPR, stmt, 0); + stmt = build_unary_op (loc, ADDR_EXPR, stmt, 0); stmt = convert (innerptrtype, stmt); - stmt = build_binary_op (input_location, PLUS_EXPR, stmt, arg2, 1); - stmt = build_indirect_ref (input_location, stmt, NULL); + stmt = build_binary_op (loc, PLUS_EXPR, stmt, arg2, 1); + stmt = build_indirect_ref (loc, stmt, NULL); return stmt; } @@ -3171,11 +3170,11 @@ altivec_resolve_overloaded_builtin (unsigned int loc, tree fndecl, goto bad; /* Build *(((arg1_inner_type*)&(vector type){arg1})+arg2) = arg0. */ arg1_inner_type = TREE_TYPE (arg1_type); - arg2 = build_binary_op (input_location, BIT_AND_EXPR, arg2, + arg2 = build_binary_op (loc, BIT_AND_EXPR, arg2, build_int_cst (TREE_TYPE (arg2), TYPE_VECTOR_SUBPARTS (arg1_type) - 1), 0); - decl = build_decl (input_location, VAR_DECL, NULL_TREE, arg1_type); + decl = build_decl (loc, VAR_DECL, NULL_TREE, arg1_type); DECL_EXTERNAL (decl) = 0; TREE_PUBLIC (decl) = 0; DECL_CONTEXT (decl) = current_function_decl; @@ -3185,15 +3184,15 @@ altivec_resolve_overloaded_builtin (unsigned int loc, tree fndecl, DECL_INITIAL (decl) = arg1; stmt = build1 (DECL_EXPR, arg1_type, decl); TREE_ADDRESSABLE (decl) = 1; - SET_EXPR_LOCATION (stmt, input_location); + SET_EXPR_LOCATION (stmt, loc); stmt = build1 (COMPOUND_LITERAL_EXPR, arg1_type, stmt); innerptrtype = build_pointer_type (arg1_inner_type); - stmt = build_unary_op (input_location, ADDR_EXPR, stmt, 0); + stmt = build_unary_op (loc, ADDR_EXPR, stmt, 0); stmt = convert (innerptrtype, stmt); - stmt = build_binary_op (input_location, PLUS_EXPR, stmt, arg2, 1); - stmt = build_indirect_ref (input_location, stmt, NULL); + stmt = build_binary_op (loc, PLUS_EXPR, stmt, arg2, 1); + stmt = build_indirect_ref (loc, stmt, NULL); stmt = build2 (MODIFY_EXPR, TREE_TYPE (stmt), stmt, convert (TREE_TYPE (stmt), arg0)); stmt = build2 (COMPOUND_EXPR, arg1_type, stmt, decl); diff --git a/gcc/config/rs6000/rs6000-protos.h b/gcc/config/rs6000/rs6000-protos.h index 0c5dad67339..1b68d440eb8 100644 --- a/gcc/config/rs6000/rs6000-protos.h +++ b/gcc/config/rs6000/rs6000-protos.h @@ -132,7 +132,7 @@ extern void function_arg_advance (CUMULATIVE_ARGS *, enum machine_mode, tree, int, int); extern int function_arg_boundary (enum machine_mode, tree); extern rtx function_arg (CUMULATIVE_ARGS *, enum machine_mode, tree, int); -extern tree altivec_resolve_overloaded_builtin (unsigned int, tree, void *); +extern tree altivec_resolve_overloaded_builtin (location_t, tree, void *); extern rtx rs6000_function_value (const_tree, const_tree); extern rtx rs6000_libcall_value (enum machine_mode); extern rtx rs6000_va_arg (tree, tree); diff --git a/gcc/objcp/ChangeLog b/gcc/objcp/ChangeLog index fcb4a6419be..45985f8db0b 100644 --- a/gcc/objcp/ChangeLog +++ b/gcc/objcp/ChangeLog @@ -1,3 +1,9 @@ +2009-06-13 Aldy Hernandez + + * objcp-decl.h (start_struct): Add location argument. + (finish_struct): Same. + (finish_decl): New. + 2009-06-12 Aldy Hernandez * objcp-decl.h (c_end_compound_stmt): New argument. diff --git a/gcc/objcp/objcp-decl.h b/gcc/objcp/objcp-decl.h index e335149e0e5..07d39abaf8f 100644 --- a/gcc/objcp/objcp-decl.h +++ b/gcc/objcp/objcp-decl.h @@ -37,12 +37,14 @@ extern tree objcp_end_compound_stmt (tree, int); invoke the original C++ functions if needed). */ #ifdef OBJCP_REMAP_FUNCTIONS -#define start_struct(code, name, in_struct, struct_types, loc) \ - objcp_start_struct (code, name) -#define finish_struct(t, fieldlist, attributes, in_struct, struct_types) \ - objcp_finish_struct (t, fieldlist, attributes) +#define start_struct(loc, code, name, in_struct, struct_types) \ + objcp_start_struct (loc, code, name) +#define finish_struct(loc, t, fieldlist, attributes, in_struct, struct_types) \ + objcp_finish_struct (loc, t, fieldlist, attributes) #define finish_function() \ objcp_finish_function () +#define finish_decl(decl, loc, init, origtype, asmspec) \ + cp_finish_decl (decl, init, false, asmspec, 0) #define xref_tag(code, name) \ objcp_xref_tag (code, name) #define comptypes(type1, type2) \ -- 2.11.0