diff options
author | Aldy Hernandez <aldyh@redhat.com> | 2009-06-13 21:27:56 +0000 |
---|---|---|
committer | Aldy Hernandez <aldyh@gcc.gnu.org> | 2009-06-13 21:27:56 +0000 |
commit | 4b29c5e5434f7aaaabd4b6f314139fde5803b513 (patch) | |
tree | ad96463ea09c41bb6629fc9bc78134fa74144bfd /gcc | |
parent | cd19075ff986d497b9a37b20ecc301fd3e5d3a22 (diff) | |
download | gcc-4b29c5e5434f7aaaabd4b6f314139fde5803b513.zip gcc-4b29c5e5434f7aaaabd4b6f314139fde5803b513.tar.gz gcc-4b29c5e5434f7aaaabd4b6f314139fde5803b513.tar.bz2 |
rs6000-protos.h (altivec_resolve_overloaded_builtin): Change first argument type to location_t.
* 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.
From-SVN: r148461
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000-c.c | 27 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000-protos.h | 2 | ||||
-rw-r--r-- | gcc/objcp/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/objcp/objcp-decl.h | 10 |
5 files changed, 34 insertions, 19 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index cc32b11..0fe65b2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2009-06-13 Aldy Hernandez <aldyh@redhat.com> + + * 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 <rguenther@suse.de> PR tree-optimization/40389 diff --git a/gcc/config/rs6000/rs6000-c.c b/gcc/config/rs6000/rs6000-c.c index cd5c470..8a39b9e 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 0c5dad6..1b68d44 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 fcb4a64..45985f8 100644 --- a/gcc/objcp/ChangeLog +++ b/gcc/objcp/ChangeLog @@ -1,3 +1,9 @@ +2009-06-13 Aldy Hernandez <aldyh@redhat.com> + + * objcp-decl.h (start_struct): Add location argument. + (finish_struct): Same. + (finish_decl): New. + 2009-06-12 Aldy Hernandez <aldyh@redhat.com> * objcp-decl.h (c_end_compound_stmt): New argument. diff --git a/gcc/objcp/objcp-decl.h b/gcc/objcp/objcp-decl.h index e335149..07d39ab 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) \ |