@@ -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