Found while building our internal code base with -ftime-report. This
patch is against google/gcc-4_6, but the bug also exists in 4.7 and
gcc-4_6-branch.
OK for gcc-4_6-branch and trunk?
Tested on x86_64. Applied to google/gcc-4_6.
Diego.
* name-lookup.c (lookup_arg_dependent): Use conditional
timevars.
* decl.c (xref_tag): Likewise.
* call.c (build_op_call): Likewise.
Index: cp/decl.c
===================================================================
--- cp/decl.c (revision 177856)
+++ cp/decl.c (working copy)
@@ -11354,9 +11354,10 @@ xref_tag (enum tag_types tag_code, tree
tag_scope scope, bool template_header_p)
{
tree ret;
- timevar_start (TV_NAME_LOOKUP);
+ bool subtime;
+ subtime = timevar_cond_start (TV_NAME_LOOKUP);
ret = xref_tag_1 (tag_code, name, scope, template_header_p);
- timevar_stop (TV_NAME_LOOKUP);
+ timevar_cond_stop (TV_NAME_LOOKUP, subtime);
return ret;
}
Index: cp/call.c
===================================================================
--- cp/call.c (revision 177856)
+++ cp/call.c (working copy)
@@ -3965,9 +3965,10 @@ tree
build_op_call (tree obj, VEC(tree,gc) **args, tsubst_flags_t complain)
{
tree ret;
- timevar_start (TV_OVERLOAD);
+ bool subtime;
+ subtime = timevar_cond_start (TV_OVERLOAD);
ret = build_op_call_1 (obj, args, complain);
- timevar_stop (TV_OVERLOAD);
+ timevar_cond_stop (TV_OVERLOAD, subtime);
return ret;
}
Index: cp/name-lookup.c
===================================================================
--- cp/name-lookup.c (revision 177856)
+++ cp/name-lookup.c (working copy)
@@ -5441,9 +5441,10 @@ lookup_arg_dependent (tree name, tree fn
bool include_std)
{
tree ret;
- timevar_start (TV_NAME_LOOKUP);
+ bool subtime;
+ subtime = timevar_cond_start (TV_NAME_LOOKUP);
ret = lookup_arg_dependent_1 (name, fns, args, include_std);
- timevar_stop (TV_NAME_LOOKUP);
+ timevar_cond_stop (TV_NAME_LOOKUP, subtime);
return ret;
}
--
This patch is available for review at http://codereview.appspot.com/4894054