diff options
author | Nathan Froyd <froydnj@codesourcery.com> | 2011-04-13 03:09:53 +0000 |
---|---|---|
committer | Nathan Froyd <froydnj@gcc.gnu.org> | 2011-04-13 03:09:53 +0000 |
commit | 81f653d6249f3737ac3986f103d8303a78ef57aa (patch) | |
tree | e87a035b675d12c1d257fa48efa286338bd704e1 /gcc/objc | |
parent | d834794704e806bd8d34e9c8889e1f82a7559f0d (diff) | |
download | gcc-81f653d6249f3737ac3986f103d8303a78ef57aa.tar.gz |
ada-tree.h (union lang_tree_node): Check for TS_COMMON before calling TREE_CHAIN.
gcc/ada/
* gcc-interface/ada-tree.h (union lang_tree_node): Check for
TS_COMMON before calling TREE_CHAIN.
* gcc-interface/misc.c (gnat_init_ts): New function.
(LANG_HOOKS_INIT_TS): Define.
gcc/
* c-decl.c (union lang_tree_node): Check for TS_COMMON before
calling TREE_CHAIN.
* print-tree.c (print_node): Likewise.
* tree-inline.c (copy_tree_r): Likewise.
* c-lang.c (LANG_HOOKS_INIT_TS): Define.
* lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
instead of TS_COMMON.
* lto-streamer-out.c (lto_output_tree_pointers): Likewise.
* tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
(copy_node_stat): Zero TREE_CHAIN only if necessary.
(MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
(MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
...and these...
(MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
* tree.h: ...here.
(TREE_CHAIN): Check for a TS_COMMON structure.
(TREE_TYPE): Check for a TS_TYPED structure.
gcc/c-family/
* c-common.h (c_common_init_ts): Declare.
* c-common.c (c_common_init_ts): Define.
gcc/cp/
* cp-lang.c (cp_init_ts): Call cp_common_init_ts. Move
tree_contains_struct initialization to...
* cp-objcp-common.c (cp_common_init_ts): ...here. Use MARK_*
macros.
* cp-objcp-common.h (cp_common_init_ts): Declare.
* cp-tree.h (union lang_tree_node): Check for TS_COMMON before
calling TREE_CHAIN.
gcc/fortran/
* f95-lang.c (union lang_tree_node): Check for TS_COMMON before
calling TREE_CHAIN.
gcc/go/
* go-lang.c (union lang_tree_node): Check for TS_COMMON before
calling TREE_CHAIN.
gcc/java/
* java-tree.h (union lang_tree_node): Check for TS_COMMON before
calling TREE_CHAIN.
gcc/lto/
* lto-tree.h (union lang_tree_node): Check for TS_COMMON before
calling TREE_CHAIN.
* lto.c (lto_fixup_common): Likewise.
gcc/objc/
* objc-lang.c (objc_init_ts): Move code for this function...
* objc-act.c (objc_common_init_ts): ...here. Define.
* objc-act.h (objc_common_init_ts): Declare.
gcc/objcp/
* objcp-lang.c (objcxx_init_ts): Call objc_common_init_ts and
cp_common_init_ts.
From-SVN: r172359
Diffstat (limited to 'gcc/objc')
-rw-r--r-- | gcc/objc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/objc/objc-act.c | 18 | ||||
-rw-r--r-- | gcc/objc/objc-act.h | 1 | ||||
-rw-r--r-- | gcc/objc/objc-lang.c | 32 |
4 files changed, 26 insertions, 31 deletions
diff --git a/gcc/objc/ChangeLog b/gcc/objc/ChangeLog index 110de87adcd..caceac12b5b 100644 --- a/gcc/objc/ChangeLog +++ b/gcc/objc/ChangeLog @@ -1,3 +1,9 @@ +2011-04-12 Nathan Froyd <froydnj@codesourcery.com> + + * objc-lang.c (objc_init_ts): Move code for this function... + * objc-act.c (objc_common_init_ts): ...here. Define. + * objc-act.h (objc_common_init_ts): Declare. + 2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com> * objc-act.c (objc_build_message_expr): Accept two arguments diff --git a/gcc/objc/objc-act.c b/gcc/objc/objc-act.c index 2f6613c0586..13eef24d04d 100644 --- a/gcc/objc/objc-act.c +++ b/gcc/objc/objc-act.c @@ -10640,4 +10640,22 @@ objc_v2_encode_prop_attr (tree property) return get_identifier (string); } +void +objc_common_init_ts (void) +{ + c_common_init_ts (); + + MARK_TS_DECL_NON_COMMON (CLASS_METHOD_DECL); + MARK_TS_DECL_NON_COMMON (INSTANCE_METHOD_DECL); + MARK_TS_DECL_NON_COMMON (KEYWORD_DECL); + MARK_TS_DECL_NON_COMMON (PROPERTY_DECL); + + MARK_TS_COMMON (CLASS_INTERFACE_TYPE); + MARK_TS_COMMON (PROTOCOL_INTERFACE_TYPE); + MARK_TS_COMMON (CLASS_IMPLEMENTATION_TYPE); + + MARK_TS_TYPED (MESSAGE_SEND_EXPR); + MARK_TS_TYPED (PROPERTY_REF); +} + #include "gt-objc-objc-act.h" diff --git a/gcc/objc/objc-act.h b/gcc/objc/objc-act.h index 3983d4b1adc..909181a1fd2 100644 --- a/gcc/objc/objc-act.h +++ b/gcc/objc/objc-act.h @@ -28,6 +28,7 @@ bool objc_init (void); const char *objc_printable_name (tree, int); tree objc_fold_obj_type_ref (tree, tree); int objc_gimplify_expr (tree *, gimple_seq *, gimple_seq *); +void objc_common_init_ts (void); /* NB: The remaining public functions are prototyped in c-common.h, for the benefit of stub-objc.c and objc-act.c. */ diff --git a/gcc/objc/objc-lang.c b/gcc/objc/objc-lang.c index fd65776598d..169b8940677 100644 --- a/gcc/objc/objc-lang.c +++ b/gcc/objc/objc-lang.c @@ -36,7 +36,6 @@ along with GCC; see the file COPYING3. If not see #include "c-lang.h" enum c_language_kind c_language = clk_objc; -static void objc_init_ts (void); /* Lang hooks common to C and ObjC are declared in c-objc-common.h; consequently, there should be very few hooks below. */ @@ -50,7 +49,7 @@ static void objc_init_ts (void); #undef LANG_HOOKS_GIMPLIFY_EXPR #define LANG_HOOKS_GIMPLIFY_EXPR objc_gimplify_expr #undef LANG_HOOKS_INIT_TS -#define LANG_HOOKS_INIT_TS objc_init_ts +#define LANG_HOOKS_INIT_TS objc_common_init_ts /* Each front end provides its own lang hook initializer. */ struct lang_hooks lang_hooks = LANG_HOOKS_INITIALIZER; @@ -58,33 +57,4 @@ struct lang_hooks lang_hooks = LANG_HOOKS_INITIALIZER; /* Lang hook routines common to C and ObjC appear in c-objc-common.c; there should be very few (if any) routines below. */ -static void -objc_init_ts (void) -{ - tree_contains_struct[CLASS_METHOD_DECL][TS_DECL_NON_COMMON] = 1; - tree_contains_struct[INSTANCE_METHOD_DECL][TS_DECL_NON_COMMON] = 1; - tree_contains_struct[KEYWORD_DECL][TS_DECL_NON_COMMON] = 1; - tree_contains_struct[PROPERTY_DECL][TS_DECL_NON_COMMON] = 1; - - tree_contains_struct[CLASS_METHOD_DECL][TS_DECL_WITH_VIS] = 1; - tree_contains_struct[INSTANCE_METHOD_DECL][TS_DECL_WITH_VIS] = 1; - tree_contains_struct[KEYWORD_DECL][TS_DECL_WITH_VIS] = 1; - tree_contains_struct[PROPERTY_DECL][TS_DECL_WITH_VIS] = 1; - - tree_contains_struct[CLASS_METHOD_DECL][TS_DECL_WRTL] = 1; - tree_contains_struct[INSTANCE_METHOD_DECL][TS_DECL_WRTL] = 1; - tree_contains_struct[KEYWORD_DECL][TS_DECL_WRTL] = 1; - tree_contains_struct[PROPERTY_DECL][TS_DECL_WRTL] = 1; - - tree_contains_struct[CLASS_METHOD_DECL][TS_DECL_MINIMAL] = 1; - tree_contains_struct[INSTANCE_METHOD_DECL][TS_DECL_MINIMAL] = 1; - tree_contains_struct[KEYWORD_DECL][TS_DECL_MINIMAL] = 1; - tree_contains_struct[PROPERTY_DECL][TS_DECL_MINIMAL] = 1; - - tree_contains_struct[CLASS_METHOD_DECL][TS_DECL_COMMON] = 1; - tree_contains_struct[INSTANCE_METHOD_DECL][TS_DECL_COMMON] = 1; - tree_contains_struct[KEYWORD_DECL][TS_DECL_COMMON] = 1; - tree_contains_struct[PROPERTY_DECL][TS_DECL_COMMON] = 1; -} - #include "gtype-objc.h" |