38
38
#ifndef HEADER
39
39
#define HEADER
40
40
41
- void foo_v1 (float *AAA, float *BBB, int *I) {return ;}
42
- void foo_v2 (float *AAA, float *BBB, int *I) {return ;}
43
- void foo_v3 (float *AAA, float *BBB, int *I) {return ;}
41
+ void foo_v1 (float *AAA, float *BBB, int &CCC, int *I) {return ;}
42
+ void foo_v2 (float *AAA, float *BBB, int &CCC, int *I) {return ;}
43
+ void foo_v3 (float *AAA, float *BBB, int &CCC, int *I) {return ;}
44
44
45
- // DUMP: FunctionDecl{{.*}} foo 'void (float *, float *, int *)'
45
+ // DUMP: FunctionDecl{{.*}} foo 'void (float *, float *, int &, int *)'
46
46
// DUMP: OMPDeclareVariantAttr{{.*}}device={arch(x86, x86_64)}
47
47
// DUMP: DeclRefExpr{{.*}}Function{{.*}}foo_v3
48
48
// DUMP: DeclRefExpr{{.*}}ParmVar{{.*}}'I'
@@ -54,9 +54,9 @@ void foo_v3(float *AAA, float *BBB, int *I) {return;}
54
54
// DUMP: DeclRefExpr{{.*}}Function{{.*}}foo_v1
55
55
// DUMP: DeclRefExpr{{.*}}ParmVar{{.*}}'AAA'
56
56
// 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) adjust_args(need_device_addr:AAA )
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:CCC )
58
58
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 )
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:CCC )
60
60
61
61
// PRINT: omp declare variant(foo_v1) match(construct={dispatch}, device={arch(arm)}) adjust_args(need_device_ptr:AAA,BBB)
62
62
@@ -67,33 +67,33 @@ void foo_v3(float *AAA, float *BBB, int *I) {return;}
67
67
#pragma omp declare variant(foo_v2) \
68
68
match (construct={dispatch}, device={arch (ppc)}), \
69
69
adjust_args(need_device_ptr:AAA) \
70
- adjust_args(need_device_addr:BBB )
70
+ adjust_args(need_device_addr:CCC )
71
71
72
72
#pragma omp declare variant(foo_v3) \
73
73
adjust_args (need_device_ptr:BBB) adjust_args(nothing:I) \
74
- adjust_args(need_device_addr:AAA) \
74
+ adjust_args(need_device_addr:CCC) \
75
75
match(construct={dispatch}, device={arch (x86,x86_64)})
76
76
77
- void foo(float *AAA, float *BBB, int *I) {return ;}
77
+ void foo(float *AAA, float *BBB, int &CCC, int *I) {return ;}
78
78
79
- void Foo_Var (float *AAA, float *BBB, float *CCC) {return ;}
79
+ void Foo_Var (float *AAA, float *BBB, float *& CCC) {return ;}
80
80
81
81
#pragma omp declare variant(Foo_Var) \
82
82
match (construct={dispatch}, device={arch (x86_64)}) \
83
83
adjust_args(need_device_ptr:AAA) adjust_args(nothing:BBB) \
84
84
adjust_args(need_device_addr:CCC)
85
85
template<typename T>
86
- void Foo(T *AAA, T *BBB, T *CCC) {return ;}
86
+ void Foo(T *AAA, T *BBB, T *& CCC) {return ;}
87
87
88
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 *)'
89
+ // DUMP: FunctionDecl{{.*}} Foo 'void (T *, T *, T *& )'
90
90
// DUMP: OMPDeclareVariantAttr{{.*}}device={arch(x86_64)}
91
91
// DUMP: DeclRefExpr{{.*}}Function{{.*}}Foo_Var
92
92
// DUMP: DeclRefExpr{{.*}}ParmVar{{.*}}'BBB'
93
93
// DUMP: DeclRefExpr{{.*}}ParmVar{{.*}}'AAA'
94
94
// DUMP: DeclRefExpr{{.*}}ParmVar{{.*}}'CCC'
95
95
//
96
- // DUMP: FunctionDecl{{.*}} Foo 'void (float *, float *, float *)'
96
+ // DUMP: FunctionDecl{{.*}} Foo 'void (float *, float *, float *& )'
97
97
// DUMP: OMPDeclareVariantAttr{{.*}}device={arch(x86_64)}
98
98
// DUMP: DeclRefExpr{{.*}}Function{{.*}}Foo_Var
99
99
// DUMP: DeclRefExpr{{.*}}ParmVar{{.*}}'BBB'
0 commit comments