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;