In gcc/: 2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
authorNicola Pero <nicola.pero@meta-innovation.com>
Tue, 12 Apr 2011 16:45:40 +0000 (16:45 +0000)
committerNicola Pero <nicola@gcc.gnu.org>
Tue, 12 Apr 2011 16:45:40 +0000 (16:45 +0000)
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

gcc/ChangeLog
gcc/c-parser.c
gcc/objc/ChangeLog
gcc/objc/objc-act.c

index f35c45b33e5a059d15a793eff7aed033caecc137..f640b288cdba8a056d9d42df73f60f35bb64a7c5 100644 (file)
@@ -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
index 33e7362baa00b35f2be8190776d1fef7dc52944d..7542a58eac622f52d682e4f9eda5aa7fd16c887b 100644 (file)
@@ -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;
index d91ca29a0260c20791cb82404f46133a2bcf6451..e9e3be6097f2f759e436805214addaf3cfc5caad 100644 (file)
@@ -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
index 513da2fe560fc4707a2554898409f78fab4f04d1..dd81fd1a5f511daf91220dcc9c463187e0de089f 100644 (file)
@@ -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);