diff options
author | Nicola Pero <nicola.pero@meta-innovation.com> | 2011-04-12 16:45:40 +0000 |
---|---|---|
committer | Nicola Pero <nicola@gcc.gnu.org> | 2011-04-12 16:45:40 +0000 |
commit | 0d8a2528265c57e2fd0c90f33c38f603db43695a (patch) | |
tree | 353154a340a6269c5f793969b1e6158c9f58ba42 | |
parent | 06bd234a03462ea2ecd879392a2042584297fb0b (diff) | |
download | gcc-0d8a2528265c57e2fd0c90f33c38f603db43695a.zip gcc-0d8a2528265c57e2fd0c90f33c38f603db43695a.tar.gz gcc-0d8a2528265c57e2fd0c90f33c38f603db43695a.tar.bz2 |
In gcc/: 2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
In gcc/:
2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
* c-parser.c (c_lex_one_token): Rewritten conditional used when
compiling Objective-C to be more efficient.
In gcc/objc/:
2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (objc_is_class_name, objc_is_id): For efficiency,
avoid calling identifier_global_value() multiple times.
From-SVN: r172327
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/c-parser.c | 3 | ||||
-rw-r--r-- | gcc/objc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/objc/objc-act.c | 19 |
4 files changed, 24 insertions, 8 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f35c45b..f640b28 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com> + + * c-parser.c (c_lex_one_token): Rewritten conditional used when + compiling Objective-C to be more efficient. + 2011-04-12 Axel Freyn <axel-freyn@gmx.de> * opts-common.c (decode_cmdline_options_to_array): Remove variable diff --git a/gcc/c-parser.c b/gcc/c-parser.c index 33e7362..7542a58 100644 --- a/gcc/c-parser.c +++ b/gcc/c-parser.c @@ -334,8 +334,7 @@ c_lex_one_token (c_parser *parser, c_token *token) variables and typedefs, and hence are shadowed by local declarations. */ if (objc_interface_decl - && (global_bindings_p () - || (!objc_force_identifier && !decl))) + && (!objc_force_identifier || global_bindings_p ())) { token->value = objc_interface_decl; token->id_kind = C_ID_CLASSNAME; diff --git a/gcc/objc/ChangeLog b/gcc/objc/ChangeLog index d91ca29..e9e3be6 100644 --- a/gcc/objc/ChangeLog +++ b/gcc/objc/ChangeLog @@ -1,3 +1,8 @@ +2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com> + + * objc-act.c (objc_is_class_name, objc_is_id): For efficiency, + avoid calling identifier_global_value() multiple times. + 2011-04-12 Martin Jambor <mjambor@suse.cz> * objc-act.c (mark_referenced_methods): Call cgraph_get_create_node diff --git a/gcc/objc/objc-act.c b/gcc/objc/objc-act.c index 513da2f..dd81fd1 100644 --- a/gcc/objc/objc-act.c +++ b/gcc/objc/objc-act.c @@ -3411,9 +3411,13 @@ objc_is_class_name (tree ident) { hash target; - if (ident && TREE_CODE (ident) == IDENTIFIER_NODE - && identifier_global_value (ident)) - ident = identifier_global_value (ident); + if (ident && TREE_CODE (ident) == IDENTIFIER_NODE) + { + tree t = identifier_global_value (ident); + if (t) + ident = t; + } + while (ident && TREE_CODE (ident) == TYPE_DECL && DECL_ORIGINAL_TYPE (ident)) ident = OBJC_TYPE_NAME (DECL_ORIGINAL_TYPE (ident)); @@ -3453,9 +3457,12 @@ objc_is_class_name (tree ident) tree objc_is_id (tree type) { - if (type && TREE_CODE (type) == IDENTIFIER_NODE - && identifier_global_value (type)) - type = identifier_global_value (type); + if (type && TREE_CODE (type) == IDENTIFIER_NODE) + { + tree t = identifier_global_value (type); + if (t) + type = t; + } if (type && TREE_CODE (type) == TYPE_DECL) type = TREE_TYPE (type); |