@@ -54,9 +54,9 @@ void foo_v3(float *AAA, float *BBB, int *I) {return;}
5454// DUMP: DeclRefExpr{{.*}}Function{{.*}}foo_v1
5555// DUMP: DeclRefExpr{{.*}}ParmVar{{.*}}'AAA'
5656// DUMP: DeclRefExpr{{.*}}ParmVar{{.*}}'BBB'
57- // PRINT: #pragma omp declare variant(foo_v3) match(construct={dispatch}, device={arch(x86, x86_64)}) adjust_args(nothing:I) adjust_args(need_device_ptr:BBB)
57+ // PRINT: #pragma omp declare variant(foo_v3) match(construct={dispatch}, device={arch(x86, x86_64)}) adjust_args(nothing:I) adjust_args(need_device_ptr:BBB) adjust_args(need_device_addr:AAA) 
5858
59- // PRINT: #pragma omp declare variant(foo_v2) match(construct={dispatch}, device={arch(ppc)}) adjust_args(need_device_ptr:AAA)
59+ // PRINT: #pragma omp declare variant(foo_v2) match(construct={dispatch}, device={arch(ppc)}) adjust_args(need_device_ptr:AAA) adjust_args(need_device_addr:BBB) 
6060
6161// PRINT: omp declare variant(foo_v1) match(construct={dispatch}, device={arch(arm)}) adjust_args(need_device_ptr:AAA,BBB)
6262
@@ -66,42 +66,48 @@ void foo_v3(float *AAA, float *BBB, int *I) {return;}
6666
6767#pragma  omp declare variant(foo_v2)                        \
6868   match (construct={dispatch}, device={arch (ppc)}),        \
69-    adjust_args(need_device_ptr:AAA)
69+    adjust_args(need_device_ptr:AAA)                        \
70+    adjust_args(need_device_addr:BBB)
7071
7172#pragma  omp declare variant(foo_v3)                        \
7273   adjust_args (need_device_ptr:BBB) adjust_args(nothing:I) \
74+    adjust_args(need_device_addr:AAA)                      \
7375   match(construct={dispatch}, device={arch (x86,x86_64)})
7476
7577void foo(float  *AAA, float  *BBB, int  *I) {return ;}
7678
77- void  Foo_Var (float  *AAA, float  *BBB) {return ;}
79+ void  Foo_Var (float  *AAA, float  *BBB,  float  *CCC ) {return ;}
7880
7981#pragma  omp declare variant(Foo_Var) \
8082   match (construct={dispatch}, device={arch (x86_64)}) \
81-    adjust_args(need_device_ptr:AAA) adjust_args(nothing:BBB)
83+    adjust_args(need_device_ptr:AAA) adjust_args(nothing:BBB) \
84+    adjust_args(need_device_addr:CCC)
8285template<typename T>
83- void Foo(T *AAA, T *BBB) {return ;}
86+ void Foo(T *AAA, T *BBB, T *CCC ) {return ;}
8487
85- // PRINT: #pragma omp declare variant(Foo_Var) match(construct={dispatch}, device={arch(x86_64)}) adjust_args(nothing:BBB) adjust_args(need_device_ptr:AAA)
86- // DUMP: FunctionDecl{{.*}} Foo 'void (T *, T *)'
88+ // PRINT: #pragma omp declare variant(Foo_Var) match(construct={dispatch}, device={arch(x86_64)}) adjust_args(nothing:BBB) adjust_args(need_device_ptr:AAA) adjust_args(need_device_addr:CCC) 
89+ // DUMP: FunctionDecl{{.*}} Foo 'void (T *, T *, T * )'
8790// DUMP: OMPDeclareVariantAttr{{.*}}device={arch(x86_64)}
8891// DUMP: DeclRefExpr{{.*}}Function{{.*}}Foo_Var
8992// DUMP: DeclRefExpr{{.*}}ParmVar{{.*}}'BBB'
9093// DUMP: DeclRefExpr{{.*}}ParmVar{{.*}}'AAA'
94+ // DUMP: DeclRefExpr{{.*}}ParmVar{{.*}}'CCC'
9195// 
92- // DUMP: FunctionDecl{{.*}} Foo 'void (float *, float *)'
96+ // DUMP: FunctionDecl{{.*}} Foo 'void (float *, float *, float * )'
9397// DUMP: OMPDeclareVariantAttr{{.*}}device={arch(x86_64)}
9498// DUMP: DeclRefExpr{{.*}}Function{{.*}}Foo_Var
9599// DUMP: DeclRefExpr{{.*}}ParmVar{{.*}}'BBB'
96100// DUMP: DeclRefExpr{{.*}}ParmVar{{.*}}'AAA'
101+ // DUMP: DeclRefExpr{{.*}}ParmVar{{.*}}'CCC'
97102
98103void  func ()
99104{
100105  float  *A;
101106  float  *B;
107+   float  *C;
102108
103109  // #pragma omp dispatch
104-   Foo (A, B);
110+   Foo (A, B, C );
105111}
106112
107113typedef  void  *omp_interop_t ;
0 commit comments