if (TREE_CODE (TREE_TYPE (decl)) == METHOD_TYPE)
parm = DECL_CHAIN (parm);
for (; parm; parm = DECL_CHAIN (parm))
- vec_safe_push (args, build_stub_object (TREE_TYPE (parm)));
+ vec_safe_push (args, forward_parm (parm));
unsigned nappend_args = 0;
tree append_args_list = TREE_CHAIN (TREE_CHAIN (chain));
void fn19 (E, int);
-#pragma omp declare variant (fn19)match(user={condition(0)}) // { dg-error {could not convert 'std::declval<int>\(\)' from 'int' to 'E'} }
-void fn20 (int, E);
+#pragma omp declare variant (fn19)match(user={condition(0)}) // { dg-error {could not convert 'i' from 'int' to 'E'} }
+void fn20 (int i, E e);
struct F { operator int () const { return 42; } int f; };
void fn21 (int, F);
#pragma omp declare variant ( fn21 ) match (user = { condition ( 1 - 1 ) } ) // { dg-error "variant 'void fn21\\\(int, F\\\)' and base 'void fn22\\\(F, F\\\)' have incompatible types" }
void fn22 (F, F);
-#pragma omp declare variant (fn19) match (user={condition(0)}) // { dg-error {could not convert 'std::declval<F>\(\)' from 'F' to 'E'} }
-void fn23 (F, int);
+#pragma omp declare variant (fn19) match (user={condition(0)}) // { dg-error {could not convert 'f' from 'F' to 'E'} }
+void fn23 (F f, int i);
void fn24 (int);
struct U { int u; };
void fn19 (E, int) {}
-#pragma omp declare variant (fn19)match(user={condition(0)}) // { dg-error {could not convert 'std::declval<int>\(\)' from 'int' to 'E'} }
-void fn20 (int, E) {}
+#pragma omp declare variant (fn19)match(user={condition(0)}) // { dg-error {could not convert 'i' from 'int' to 'E'} }
+void fn20 (int i, E e) {}
struct F { operator int () const { return 42; } int f; };
void fn21 (int, F) {}
#pragma omp declare variant ( fn21 ) match (user = { condition ( 1 - 1 ) } ) // { dg-error "variant 'void fn21\\\(int, F\\\)' and base 'void fn22\\\(F, F\\\)' have incompatible types" }
void fn22 (F, F) {}
-#pragma omp declare variant (fn19) match (user={condition(0)}) // { dg-error {could not convert 'std::declval<F>\(\)' from 'F' to 'E'} }
-void fn23 (F, int) {}
+#pragma omp declare variant (fn19) match (user={condition(0)}) // { dg-error {could not convert 'f' from 'F' to 'E'} }
+void fn23 (F f, int i) {}
void fn24 (int);
struct U { int u; };