Hi,

I was looking a bit into PR51398 and noticed this opportunity. It seems also not a bad idea performance-wise, given in particular that the function is called in a loop. But maybe it's more suited for Stage 1, just let me know. Tested x86_64-linux.

Thanks,
Paolo.

//////////////////////


2012-01-21  Paolo Carlini  <paolo.carl...@oracle.com>

        * name-lookup.c (binding_to_template_parms_of_scope_p): Clean up.

Index: name-lookup.c
===================================================================
--- name-lookup.c       (revision 183359)
+++ name-lookup.c       (working copy)
@@ -4467,20 +4467,17 @@ binding_to_template_parms_of_scope_p (cxx_binding
                                      cp_binding_level *scope)
 {
   tree binding_value;
+  tree tinfo;
 
-  if (!binding || !scope)
+  if (!binding || !scope || !scope->this_entity)
     return false;
 
   binding_value = binding->value ?  binding->value : binding->type;
+  tinfo = get_template_info (scope->this_entity);
 
-  return (scope
-         && scope->this_entity
-         && get_template_info (scope->this_entity)
-         && PRIMARY_TEMPLATE_P (TI_TEMPLATE
-                                (get_template_info (scope->this_entity)))
-         && parameter_of_template_p (binding_value,
-                                     TI_TEMPLATE (get_template_info \
-                                                   (scope->this_entity))));
+  return (tinfo
+         && PRIMARY_TEMPLATE_P (TI_TEMPLATE (tinfo))
+         && parameter_of_template_p (binding_value, TI_TEMPLATE (tinfo)));
 }
 
 /* Return the innermost non-namespace binding for NAME from a scope

Reply via email to