On 05/26/2017 03:54 AM, Jakub Jelinek wrote:
On Thu, May 25, 2017 at 09:03:31AM -0400, Nathan Sidwell wrote:
This patch reimplements ADL.

I believe this broke
FAIL: libgomp.c++/udr-12.C (test for excess errors)
UNRESOLVED: libgomp.c++/udr-12.C compilation failed to produce executable

In answer to my own question, Yes. Yes we should ADL the type.

Fixed thusly.

nathan

--
Nathan Sidwell
2017-05-26  Nathan Sidwell  <nat...@acm.org>

	* name-lookup.c (name_lookup::search_adl): ADL OMP UDR type args.

Index: name-lookup.c
===================================================================
--- name-lookup.c	(revision 248488)
+++ name-lookup.c	(working copy)
@@ -998,9 +998,11 @@ name_lookup::search_adl (tree fns, vec<t
   tree arg;
 
   FOR_EACH_VEC_ELT_REVERSE (*args, ix, arg)
-    /* OMP reduction operators put a type as the first arg.  I don't
-       suppose we should ADL on that?  */
-    if (!TYPE_P (arg))
+    /* OMP reduction operators put an ADL-significant type as the
+       first arg. */
+    if (TYPE_P (arg))
+      adl_type (arg);
+    else
       adl_expr (arg);
 
   delete fn_set;

Reply via email to