diff mbox

[C++,Patch/RFC] Tiny tsubst tweak

Message ID 5758120F.4090904@oracle.com
State New
Headers show

Commit Message

Paolo Carlini June 8, 2016, 12:39 p.m. UTC
Hi,

while looking a bit into c++/71169 I noticed that in one place we first 
call tsubst_aggr_type and tubst_copy and then we check if either 
returned error_mark_node. Performance-wise, it would be better to check 
as soon as possible the return value of the former and in case return 
immediately without calling the latter. That assuming I'm not missing 
something of course... but the below passes testing.

Thanks,
Paolo.

//////////////////////
diff mbox

Patch

Index: pt.c
===================================================================
--- pt.c	(revision 237196)
+++ pt.c	(working copy)
@@ -13430,10 +13430,12 @@  tsubst (tree t, tree args, tsubst_flags_t complain
       {
 	tree ctx = tsubst_aggr_type (TYPE_CONTEXT (t), args, complain,
 				     in_decl, /*entering_scope=*/1);
+	if (ctx == error_mark_node)
+	  return error_mark_node;
+
 	tree f = tsubst_copy (TYPENAME_TYPE_FULLNAME (t), args,
 			      complain, in_decl);
-
-	if (ctx == error_mark_node || f == error_mark_node)
+	if (f == error_mark_node)
 	  return error_mark_node;
 
 	if (!MAYBE_CLASS_TYPE_P (ctx))